@zmice/zc 0.2.7 → 0.2.8

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.
Files changed (73) hide show
  1. package/README.md +430 -430
  2. package/dist/cli/__tests__/platform.test.js +112 -89
  3. package/dist/cli/__tests__/platform.test.js.map +1 -1
  4. package/dist/cli/__tests__/surface.test.js +1 -1
  5. package/dist/cli/__tests__/surface.test.js.map +1 -1
  6. package/dist/cli/platform.d.ts.map +1 -1
  7. package/dist/cli/platform.js +62 -5
  8. package/dist/cli/platform.js.map +1 -1
  9. package/dist/cli/setup.d.ts +3 -0
  10. package/dist/cli/setup.d.ts.map +1 -0
  11. package/dist/cli/setup.js +41 -0
  12. package/dist/cli/setup.js.map +1 -0
  13. package/dist/node_modules/@zmice/platform-core/dist/index.test.js +5 -3
  14. package/dist/node_modules/@zmice/platform-core/dist/index.test.js.map +1 -1
  15. package/dist/runtime/worktree-manager.js +2 -2
  16. package/dist/runtime/worktree-manager.js.map +1 -1
  17. package/dist/utils/codex-config-merge.d.ts +3 -0
  18. package/dist/utils/codex-config-merge.d.ts.map +1 -0
  19. package/dist/utils/codex-config-merge.js +43 -0
  20. package/dist/utils/codex-config-merge.js.map +1 -0
  21. package/dist/utils/codex-config-merge.test.d.ts +2 -0
  22. package/dist/utils/codex-config-merge.test.d.ts.map +1 -0
  23. package/dist/utils/codex-config-merge.test.js +64 -0
  24. package/dist/utils/codex-config-merge.test.js.map +1 -0
  25. package/dist/utils/install-target.test.js +3 -2
  26. package/dist/utils/install-target.test.js.map +1 -1
  27. package/dist/utils/qwen-extension-cli.d.ts.map +1 -1
  28. package/dist/utils/qwen-extension-cli.js +4 -4
  29. package/dist/utils/qwen-extension-cli.js.map +1 -1
  30. package/dist/utils/qwen-extension-cli.test.js +9 -6
  31. package/dist/utils/qwen-extension-cli.test.js.map +1 -1
  32. package/dist/utils/workspace.js +1 -1
  33. package/dist/utils/workspace.js.map +1 -1
  34. package/dist/utils/workspace.test.js +14 -0
  35. package/dist/utils/workspace.test.js.map +1 -1
  36. package/package.json +2 -2
  37. package/vendor/node_modules/@zmice/platform-core/dist/index.test.js +5 -3
  38. package/vendor/node_modules/@zmice/platform-core/dist/index.test.js.map +1 -1
  39. package/vendor/packages/platform-claude/dist/index.js +75 -75
  40. package/vendor/packages/platform-claude/dist/index.test.js +11 -8
  41. package/vendor/packages/platform-claude/dist/index.test.js.map +1 -1
  42. package/vendor/packages/platform-codex/dist/index.js +194 -194
  43. package/vendor/packages/platform-codex/dist/index.test.js +16 -13
  44. package/vendor/packages/platform-codex/dist/index.test.js.map +1 -1
  45. package/vendor/packages/platform-opencode/dist/index.js +75 -75
  46. package/vendor/packages/platform-opencode/dist/index.test.js +19 -15
  47. package/vendor/packages/platform-opencode/dist/index.test.js.map +1 -1
  48. package/vendor/packages/platform-qwen/dist/index.js +75 -75
  49. package/vendor/packages/platform-qwen/dist/index.test.js +9 -7
  50. package/vendor/packages/platform-qwen/dist/index.test.js.map +1 -1
  51. package/vendor/packages/toolkit/src/content/agents/architect/body.md +42 -42
  52. package/vendor/packages/toolkit/src/content/agents/code-reviewer/body.md +41 -41
  53. package/vendor/packages/toolkit/src/content/agents/product-owner/body.md +40 -40
  54. package/vendor/packages/toolkit/src/content/commands/plan-review/body.md +31 -31
  55. package/vendor/packages/toolkit/src/content/commands/start/body.md +197 -197
  56. package/vendor/packages/toolkit/src/content/commands/start/meta.yaml +55 -55
  57. package/vendor/packages/toolkit/src/content/skills/branch-finish-and-cleanup/body.md +172 -172
  58. package/vendor/packages/toolkit/src/content/skills/browser-qa-testing/body.md +111 -111
  59. package/vendor/packages/toolkit/src/content/skills/ci-cd-and-automation/body.md +86 -86
  60. package/vendor/packages/toolkit/src/content/skills/code-review-and-quality/body.md +140 -140
  61. package/vendor/packages/toolkit/src/content/skills/code-simplification/body.md +80 -80
  62. package/vendor/packages/toolkit/src/content/skills/context-engineering/body.md +67 -67
  63. package/vendor/packages/toolkit/src/content/skills/continuous-learning/body.md +102 -102
  64. package/vendor/packages/toolkit/src/content/skills/multi-perspective-review/body.md +81 -81
  65. package/vendor/packages/toolkit/src/content/skills/parallel-agent-dispatch/body.md +113 -113
  66. package/vendor/packages/toolkit/src/content/skills/performance-optimization/body.md +75 -75
  67. package/vendor/packages/toolkit/src/content/skills/planning-and-task-breakdown/body.md +83 -83
  68. package/vendor/packages/toolkit/src/content/skills/sdd-tdd-workflow/body.md +95 -95
  69. package/vendor/packages/toolkit/src/content/skills/sprint-retrospective/body.md +99 -99
  70. package/vendor/packages/toolkit/src/content/skills/team-orchestration/body.md +126 -126
  71. package/vendor/packages/toolkit/src/content/skills/test-driven-development/body.md +78 -78
  72. package/vendor/packages/toolkit/src/content/skills/using-agent-skills/body.md +193 -193
  73. package/vendor/references/upstreams.yaml +94 -94
@@ -84,81 +84,81 @@ function renderAgentsFile(manifestSource, assets, layout) {
84
84
  const commandCount = assets.filter((asset) => asset.kind === "command").length;
85
85
  const skillCount = assets.filter((asset) => asset.kind === "skill").length;
86
86
  const agentCount = assets.filter((asset) => asset.kind === "agent").length;
87
- return `# OpenCode 工作流入口
88
-
89
- 这是安装到 OpenCode 的薄入口文件。
90
-
91
- 它负责三件事:
92
-
93
- 1. 给出统一任务开始方式
94
- 2. 说明固定 workflow 的选路规则
95
- 3. 指向 \`${layout.displayCommandsDir}\`、\`${layout.displaySkillsDir}\`、\`${layout.displayAgentsDir}\` 里的详细内容
96
-
97
- ## 核心规则
98
-
99
- - 默认先判断任务属于哪条 workflow,再决定入口
100
- - OpenCode 侧通过自定义 \`/zc-*\` command 和按需加载 skills 承接统一语义
101
- - 中文优先,技术契约保持原样
102
- - 证据先于断言,完成前必须验证
103
-
104
- ## 固定 workflow
105
-
106
- ### 1. product-analysis
107
- - 入口:\`/zc-product-analysis\`
108
- - 适用:需求模糊、范围和验收标准未收敛
109
-
110
- ### 2. full-delivery
111
- - 入口:\`/zc-sdd-tdd\`
112
- - 适用:新功能、较大改动、完整交付
113
-
114
- ### 3. bugfix
115
- - 入口:\`/zc-debug\`
116
- - 适用:Bug、失败测试、异常行为
117
-
118
- ### 4. review-closure
119
- - 入口:\`/zc-quality-review\`
120
- - 适用:已有改动,需要审查与反馈收敛
121
-
122
- ### 5. docs-release
123
- - 入口:\`/zc-doc\` 或 \`/zc-ship\`
124
- - 适用:文档、ADR、发布说明、上线准备
125
-
126
- ### 6. investigation
127
- - 入口:\`/zc-onboard\` 或 \`/zc-ctx-health\`
128
- - 适用:陌生代码库、上下文失焦、技术摸底
129
-
130
- ## 推荐开始方式
131
-
132
- - 不确定走哪条线:先用 \`/zc-start\`
133
- - 需求模糊:进 \`/zc-product-analysis\`
134
- - 已确认是完整交付:进 \`/zc-sdd-tdd\`
135
- - 明确是 bug:进 \`/zc-debug\`
136
-
137
- ## 最常用入口速查
138
-
139
- - 做新需求但范围还没收敛:\`/zc-product-analysis\`
140
- - 进入完整交付主流程:\`/zc-sdd-tdd\`
141
- - 修 bug:\`/zc-debug\`
142
- - 做代码审查和反馈收敛:\`/zc-quality-review\`
143
- - 补文档或发布说明:\`/zc-doc\`
144
- - 陌生项目先摸底:\`/zc-onboard\` 或 \`/zc-ctx-health\`
145
-
146
- ## 详细内容在哪里
147
-
148
- - commands:查看 \`${layout.displayCommandsDir}/zc-*.md\`
149
- - skills:查看 \`${layout.displaySkillsDir}/zc-*/SKILL.md\`
150
- - agents:查看 \`${layout.displayAgentsDir}/zc-*.md\`
151
- - 如果入口页不足以判断,就先打开对应 command、skill 或 agent 再继续
152
-
153
- ## 已安装能力
154
-
155
- - 清单来源:\`${manifestSource}\`
156
- - 匹配到的资产:${assets.length}
157
- - commands:${commandCount} 个
158
- - skills:${skillCount} 个
159
- - agents:${agentCount} 个
160
-
161
- ${renderPlatformAssetList(assets)}
87
+ return `# OpenCode 工作流入口
88
+
89
+ 这是安装到 OpenCode 的薄入口文件。
90
+
91
+ 它负责三件事:
92
+
93
+ 1. 给出统一任务开始方式
94
+ 2. 说明固定 workflow 的选路规则
95
+ 3. 指向 \`${layout.displayCommandsDir}\`、\`${layout.displaySkillsDir}\`、\`${layout.displayAgentsDir}\` 里的详细内容
96
+
97
+ ## 核心规则
98
+
99
+ - 默认先判断任务属于哪条 workflow,再决定入口
100
+ - OpenCode 侧通过自定义 \`/zc-*\` command 和按需加载 skills 承接统一语义
101
+ - 中文优先,技术契约保持原样
102
+ - 证据先于断言,完成前必须验证
103
+
104
+ ## 固定 workflow
105
+
106
+ ### 1. product-analysis
107
+ - 入口:\`/zc-product-analysis\`
108
+ - 适用:需求模糊、范围和验收标准未收敛
109
+
110
+ ### 2. full-delivery
111
+ - 入口:\`/zc-sdd-tdd\`
112
+ - 适用:新功能、较大改动、完整交付
113
+
114
+ ### 3. bugfix
115
+ - 入口:\`/zc-debug\`
116
+ - 适用:Bug、失败测试、异常行为
117
+
118
+ ### 4. review-closure
119
+ - 入口:\`/zc-quality-review\`
120
+ - 适用:已有改动,需要审查与反馈收敛
121
+
122
+ ### 5. docs-release
123
+ - 入口:\`/zc-doc\` 或 \`/zc-ship\`
124
+ - 适用:文档、ADR、发布说明、上线准备
125
+
126
+ ### 6. investigation
127
+ - 入口:\`/zc-onboard\` 或 \`/zc-ctx-health\`
128
+ - 适用:陌生代码库、上下文失焦、技术摸底
129
+
130
+ ## 推荐开始方式
131
+
132
+ - 不确定走哪条线:先用 \`/zc-start\`
133
+ - 需求模糊:进 \`/zc-product-analysis\`
134
+ - 已确认是完整交付:进 \`/zc-sdd-tdd\`
135
+ - 明确是 bug:进 \`/zc-debug\`
136
+
137
+ ## 最常用入口速查
138
+
139
+ - 做新需求但范围还没收敛:\`/zc-product-analysis\`
140
+ - 进入完整交付主流程:\`/zc-sdd-tdd\`
141
+ - 修 bug:\`/zc-debug\`
142
+ - 做代码审查和反馈收敛:\`/zc-quality-review\`
143
+ - 补文档或发布说明:\`/zc-doc\`
144
+ - 陌生项目先摸底:\`/zc-onboard\` 或 \`/zc-ctx-health\`
145
+
146
+ ## 详细内容在哪里
147
+
148
+ - commands:查看 \`${layout.displayCommandsDir}/zc-*.md\`
149
+ - skills:查看 \`${layout.displaySkillsDir}/zc-*/SKILL.md\`
150
+ - agents:查看 \`${layout.displayAgentsDir}/zc-*.md\`
151
+ - 如果入口页不足以判断,就先打开对应 command、skill 或 agent 再继续
152
+
153
+ ## 已安装能力
154
+
155
+ - 清单来源:\`${manifestSource}\`
156
+ - 匹配到的资产:${assets.length}
157
+ - commands:${commandCount} 个
158
+ - skills:${skillCount} 个
159
+ - agents:${agentCount} 个
160
+
161
+ ${renderPlatformAssetList(assets)}
162
162
  `;
163
163
  }
164
164
  function toNamespacedSlug(asset) {
@@ -1,5 +1,6 @@
1
1
  import { describe, it } from "node:test";
2
2
  import assert from "node:assert/strict";
3
+ import { join } from "node:path";
3
4
  import { capability, createOpenCodeGenerationPlan, createOpenCodeInstallPlan, packageName, platformName, } from "./index.js";
4
5
  const manifest = {
5
6
  source: "toolkit-manifest",
@@ -67,39 +68,42 @@ describe("@zmice/platform-opencode scaffold", () => {
67
68
  assert.ok(plan.artifacts[3]?.content.includes('name: "zc-reviewer"'));
68
69
  });
69
70
  it("creates a project-scoped install plan with .opencode directories", () => {
71
+ const destinationRoot = join("tmp", "opencode-project");
70
72
  const plan = createOpenCodeInstallPlan(manifest, {
71
- destinationRoot: "/tmp/opencode-project",
73
+ destinationRoot,
72
74
  scope: "project",
73
75
  });
74
76
  assert.deepEqual(plan.artifacts.map((artifact) => artifact.path), [
75
- "/tmp/opencode-project/AGENTS.md",
76
- "/tmp/opencode-project/.opencode/commands/zc-start.md",
77
- "/tmp/opencode-project/.opencode/skills/zc-sdd-tdd-workflow/SKILL.md",
78
- "/tmp/opencode-project/.opencode/agents/zc-reviewer.md",
77
+ join(destinationRoot, "AGENTS.md"),
78
+ join(destinationRoot, ".opencode/commands/zc-start.md"),
79
+ join(destinationRoot, ".opencode/skills/zc-sdd-tdd-workflow/SKILL.md"),
80
+ join(destinationRoot, ".opencode/agents/zc-reviewer.md"),
79
81
  ]);
80
82
  });
81
83
  it("creates a global-scoped install plan using ~/.config/opencode paths", () => {
84
+ const destinationRoot = join("tmp", "home");
82
85
  const plan = createOpenCodeInstallPlan(manifest, {
83
- destinationRoot: "/tmp/home",
86
+ destinationRoot,
84
87
  scope: "global",
85
88
  });
86
89
  assert.deepEqual(plan.artifacts.map((artifact) => artifact.path), [
87
- "/tmp/home/AGENTS.md",
88
- "/tmp/home/commands/zc-start.md",
89
- "/tmp/home/skills/zc-sdd-tdd-workflow/SKILL.md",
90
- "/tmp/home/agents/zc-reviewer.md",
90
+ join(destinationRoot, "AGENTS.md"),
91
+ join(destinationRoot, "commands/zc-start.md"),
92
+ join(destinationRoot, "skills/zc-sdd-tdd-workflow/SKILL.md"),
93
+ join(destinationRoot, "agents/zc-reviewer.md"),
91
94
  ]);
92
95
  });
93
96
  it("creates a portable dir-scoped install plan without .config or .opencode prefixes", () => {
97
+ const destinationRoot = join("tmp", "opencode-bundle");
94
98
  const plan = createOpenCodeInstallPlan(manifest, {
95
- destinationRoot: "/tmp/opencode-bundle",
99
+ destinationRoot,
96
100
  scope: "dir",
97
101
  });
98
102
  assert.deepEqual(plan.artifacts.map((artifact) => artifact.path), [
99
- "/tmp/opencode-bundle/AGENTS.md",
100
- "/tmp/opencode-bundle/commands/zc-start.md",
101
- "/tmp/opencode-bundle/skills/zc-sdd-tdd-workflow/SKILL.md",
102
- "/tmp/opencode-bundle/agents/zc-reviewer.md",
103
+ join(destinationRoot, "AGENTS.md"),
104
+ join(destinationRoot, "commands/zc-start.md"),
105
+ join(destinationRoot, "skills/zc-sdd-tdd-workflow/SKILL.md"),
106
+ join(destinationRoot, "agents/zc-reviewer.md"),
103
107
  ]);
104
108
  });
105
109
  });
@@ -1 +1 @@
1
- {"version":3,"file":"index.test.js","sourceRoot":"","sources":["../src/index.test.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.test.js","sourceRoot":"","sources":["../src/index.test.ts"],"names":[],"mappings":"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"}
@@ -42,81 +42,81 @@ function getExtensionRoot(scope = "project") {
42
42
  return `extensions/${templateFiles.extensionName}`;
43
43
  }
44
44
  function renderContextFile(manifestSource, assets, commands, skills, agents) {
45
- return `# Qwen 工作流入口
46
-
47
- 这是安装到 Qwen extension 里的薄入口文件。
48
-
49
- 它负责三件事:
50
-
51
- 1. 给出统一任务开始方式
52
- 2. 说明固定 workflow 的选路规则
53
- 3. 指向 extension 内的 \`commands/\`、\`skills/\`、\`agents/\` 详细内容
54
-
55
- ## 核心规则
56
-
57
- - 默认先评估任务类型,再选对应 workflow
58
- - 中文优先,技术契约保持原样
59
- - 证据先于断言,完成前必须验证
60
- - 命令统一使用 \`zc:\` 命名空间,避免和平台内置能力冲突
61
-
62
- ## 固定 workflow
63
-
64
- ### 1. product-analysis
65
- - 入口:\`zc:product-analysis\`
66
- - 适用:需求模糊、价值与范围未收敛
67
-
68
- ### 2. full-delivery
69
- - 入口:\`zc:sdd-tdd\`
70
- - 适用:新功能、较大改动、完整交付
71
-
72
- ### 3. bugfix
73
- - 入口:\`zc:debug\`
74
- - 适用:Bug、失败测试、异常行为
75
-
76
- ### 4. review-closure
77
- - 入口:\`zc:quality-review\`
78
- - 适用:已有改动,需要审查与反馈收敛
79
-
80
- ### 5. docs-release
81
- - 入口:\`zc:doc\` 或 \`zc:ship\`
82
- - 适用:文档、ADR、发布说明、上线准备
83
-
84
- ### 6. investigation
85
- - 入口:\`zc:onboard\` 或 \`zc:ctx-health\`
86
- - 适用:陌生代码库、上下文失焦、技术摸底
87
-
88
- ## 推荐开始方式
89
-
90
- - 不确定走哪条线:先用 \`zc:start\`
91
- - 需求模糊:进 \`zc:product-analysis\`
92
- - 已确认是完整交付:进 \`zc:sdd-tdd\`
93
- - 明确是 bug:进 \`zc:debug\`
94
-
95
- ## 最常用入口速查
96
-
97
- - 做新需求但范围还没收敛:\`zc:product-analysis\`
98
- - 进入完整交付主流程:\`zc:sdd-tdd\`
99
- - 修 bug:\`zc:debug\`
100
- - 做代码审查和反馈收敛:\`zc:quality-review\`
101
- - 补文档或发布说明:\`zc:doc\`
102
- - 陌生项目先摸底:\`zc:onboard\` 或 \`zc:ctx-health\`
103
-
104
- ## 详细内容在哪里
105
-
106
- - commands:\`commands/zc/*.md\`
107
- - skills:\`skills/zc-*/SKILL.md\`
108
- - agents:\`agents/zc-*.md\`
109
- - 如果入口页不足以判断,就先打开对应 command、skill 或 agent 再继续
110
-
111
- ## 已安装能力
112
-
113
- - 清单来源:\`${manifestSource}\`
114
- - 匹配到的资产:${assets.length}
115
- - 命令入口:${commands.length} 个,统一暴露为 \`zc:<command>\`
116
- - skills:${skills.length} 个
117
- - agents:${agents.length} 个
118
-
119
- ${renderPlatformAssetList(assets)}
45
+ return `# Qwen 工作流入口
46
+
47
+ 这是安装到 Qwen extension 里的薄入口文件。
48
+
49
+ 它负责三件事:
50
+
51
+ 1. 给出统一任务开始方式
52
+ 2. 说明固定 workflow 的选路规则
53
+ 3. 指向 extension 内的 \`commands/\`、\`skills/\`、\`agents/\` 详细内容
54
+
55
+ ## 核心规则
56
+
57
+ - 默认先评估任务类型,再选对应 workflow
58
+ - 中文优先,技术契约保持原样
59
+ - 证据先于断言,完成前必须验证
60
+ - 命令统一使用 \`zc:\` 命名空间,避免和平台内置能力冲突
61
+
62
+ ## 固定 workflow
63
+
64
+ ### 1. product-analysis
65
+ - 入口:\`zc:product-analysis\`
66
+ - 适用:需求模糊、价值与范围未收敛
67
+
68
+ ### 2. full-delivery
69
+ - 入口:\`zc:sdd-tdd\`
70
+ - 适用:新功能、较大改动、完整交付
71
+
72
+ ### 3. bugfix
73
+ - 入口:\`zc:debug\`
74
+ - 适用:Bug、失败测试、异常行为
75
+
76
+ ### 4. review-closure
77
+ - 入口:\`zc:quality-review\`
78
+ - 适用:已有改动,需要审查与反馈收敛
79
+
80
+ ### 5. docs-release
81
+ - 入口:\`zc:doc\` 或 \`zc:ship\`
82
+ - 适用:文档、ADR、发布说明、上线准备
83
+
84
+ ### 6. investigation
85
+ - 入口:\`zc:onboard\` 或 \`zc:ctx-health\`
86
+ - 适用:陌生代码库、上下文失焦、技术摸底
87
+
88
+ ## 推荐开始方式
89
+
90
+ - 不确定走哪条线:先用 \`zc:start\`
91
+ - 需求模糊:进 \`zc:product-analysis\`
92
+ - 已确认是完整交付:进 \`zc:sdd-tdd\`
93
+ - 明确是 bug:进 \`zc:debug\`
94
+
95
+ ## 最常用入口速查
96
+
97
+ - 做新需求但范围还没收敛:\`zc:product-analysis\`
98
+ - 进入完整交付主流程:\`zc:sdd-tdd\`
99
+ - 修 bug:\`zc:debug\`
100
+ - 做代码审查和反馈收敛:\`zc:quality-review\`
101
+ - 补文档或发布说明:\`zc:doc\`
102
+ - 陌生项目先摸底:\`zc:onboard\` 或 \`zc:ctx-health\`
103
+
104
+ ## 详细内容在哪里
105
+
106
+ - commands:\`commands/zc/*.md\`
107
+ - skills:\`skills/zc-*/SKILL.md\`
108
+ - agents:\`agents/zc-*.md\`
109
+ - 如果入口页不足以判断,就先打开对应 command、skill 或 agent 再继续
110
+
111
+ ## 已安装能力
112
+
113
+ - 清单来源:\`${manifestSource}\`
114
+ - 匹配到的资产:${assets.length}
115
+ - 命令入口:${commands.length} 个,统一暴露为 \`zc:<command>\`
116
+ - skills:${skills.length} 个
117
+ - agents:${agents.length} 个
118
+
119
+ ${renderPlatformAssetList(assets)}
120
120
  `;
121
121
  }
122
122
  function renderExtensionManifest(packageName, extensionVersion, manifestSource, assets, commands, skills, agents) {
@@ -1,5 +1,6 @@
1
1
  import { describe, it } from "node:test";
2
2
  import assert from "node:assert/strict";
3
+ import { join } from "node:path";
3
4
  import { capability, createQwenGenerationPlan, createQwenInstallPlan, packageName, platformName, templateFiles, } from "./index.js";
4
5
  const manifest = {
5
6
  source: "toolkit-manifest",
@@ -62,20 +63,21 @@ describe("@zmice/platform-qwen scaffold", () => {
62
63
  assert.ok(plan.artifacts[4]?.content.includes('name: "zc-reviewer"'));
63
64
  });
64
65
  it("creates a global install plan rooted at the caller destination", () => {
66
+ const destinationRoot = join("tmp", "qwen");
65
67
  const plan = createQwenInstallPlan(manifest, {
66
- destinationRoot: "/tmp/qwen",
68
+ destinationRoot,
67
69
  scope: "global",
68
70
  });
69
- assert.equal(plan.destinationRoot, "/tmp/qwen");
71
+ assert.equal(plan.destinationRoot, destinationRoot);
70
72
  assert.equal(plan.scope, "global");
71
73
  assert.equal(plan.overwrite, "error");
72
74
  assert.equal(plan.capability?.namespace, "zc");
73
75
  assert.deepEqual(plan.artifacts.map((artifact) => artifact.path), [
74
- "/tmp/qwen/extensions/zc-toolkit/QWEN.md",
75
- "/tmp/qwen/extensions/zc-toolkit/qwen-extension.json",
76
- "/tmp/qwen/extensions/zc-toolkit/commands/zc/start.md",
77
- "/tmp/qwen/extensions/zc-toolkit/skills/zc-alpha/SKILL.md",
78
- "/tmp/qwen/extensions/zc-toolkit/agents/zc-reviewer.md",
76
+ join(destinationRoot, "extensions/zc-toolkit/QWEN.md"),
77
+ join(destinationRoot, "extensions/zc-toolkit/qwen-extension.json"),
78
+ join(destinationRoot, "extensions/zc-toolkit/commands/zc/start.md"),
79
+ join(destinationRoot, "extensions/zc-toolkit/skills/zc-alpha/SKILL.md"),
80
+ join(destinationRoot, "extensions/zc-toolkit/agents/zc-reviewer.md"),
79
81
  ]);
80
82
  assert.ok(plan.artifacts[0]?.content.includes("Qwen 工作流入口"));
81
83
  assert.ok(plan.artifacts[2]?.content.includes("Start command body"));
@@ -1 +1 @@
1
- {"version":3,"file":"index.test.js","sourceRoot":"","sources":["../src/index.test.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.test.js","sourceRoot":"","sources":["../src/index.test.ts"],"names":[],"mappings":"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"}
@@ -1,42 +1,42 @@
1
- # 角色定位
2
-
3
- 你是负责系统设计和关键技术决策的架构师。你的价值不在于写业务代码,而在于把复杂问题收敛成可落地、可权衡、可记录的方案。
4
-
5
- 核心原则:**为当前需求设计,并为后续演进保留余地,但不做超前抽象。**
6
-
7
- ## 何时介入
8
-
9
- - 需求会影响多个模块、服务或数据边界
10
- - 需要做技术选型、模块划分或系统重构
11
- - 团队对“应该怎么拆、怎么连、怎么扩”没有共识
12
- - 需要 ADR、方案对比或风险权衡
13
-
14
- ## 重点关注
15
-
16
- - 系统边界、依赖方向和数据流
17
- - 技术选型与长期维护成本
18
- - 模块职责、接口契约和可演进性
19
- - 风险、Trade-off 和不可逆决策
20
- - 数据架构与迁移策略
21
-
22
- ## 交付物
23
-
24
- - 架构决策记录(ADR)
25
- - 方案对比矩阵与推荐结论
26
- - 模块/服务边界图
27
- - 风险清单与缓解措施
28
- - 后续落地动作列表
29
-
30
- ## 输出纪律
31
-
32
- 推荐结论必须写清选择、放弃项和 trade-off:
33
-
34
- ```text
35
- Recommendation: <方案> because <证据、长期成本和被放弃替代方案>。
36
- ```
37
-
38
- ## 不负责什么
39
-
40
- - 不直接写业务实现
41
- - 不做深度安全审计和专项性能 profiling
42
- - 不替代后端、前端或测试角色的具体落地工作
1
+ # 角色定位
2
+
3
+ 你是负责系统设计和关键技术决策的架构师。你的价值不在于写业务代码,而在于把复杂问题收敛成可落地、可权衡、可记录的方案。
4
+
5
+ 核心原则:**为当前需求设计,并为后续演进保留余地,但不做超前抽象。**
6
+
7
+ ## 何时介入
8
+
9
+ - 需求会影响多个模块、服务或数据边界
10
+ - 需要做技术选型、模块划分或系统重构
11
+ - 团队对“应该怎么拆、怎么连、怎么扩”没有共识
12
+ - 需要 ADR、方案对比或风险权衡
13
+
14
+ ## 重点关注
15
+
16
+ - 系统边界、依赖方向和数据流
17
+ - 技术选型与长期维护成本
18
+ - 模块职责、接口契约和可演进性
19
+ - 风险、Trade-off 和不可逆决策
20
+ - 数据架构与迁移策略
21
+
22
+ ## 交付物
23
+
24
+ - 架构决策记录(ADR)
25
+ - 方案对比矩阵与推荐结论
26
+ - 模块/服务边界图
27
+ - 风险清单与缓解措施
28
+ - 后续落地动作列表
29
+
30
+ ## 输出纪律
31
+
32
+ 推荐结论必须写清选择、放弃项和 trade-off:
33
+
34
+ ```text
35
+ Recommendation: <方案> because <证据、长期成本和被放弃替代方案>。
36
+ ```
37
+
38
+ ## 不负责什么
39
+
40
+ - 不直接写业务实现
41
+ - 不做深度安全审计和专项性能 profiling
42
+ - 不替代后端、前端或测试角色的具体落地工作
@@ -1,41 +1,41 @@
1
- # 角色定位
2
-
3
- 你是负责在合并前发现问题的代码审查官。你的重点不是重复作者的思路,而是识别风险、指出缺口、给出可执行修复方向。
4
-
5
- 核心原则:**先发现真正会出事的问题,再评估整体体验。**
6
-
7
- ## 何时介入
8
-
9
- - 任何变更准备合并之前
10
- - 完成一次功能实现或重构之后
11
- - 需要第三方视角审查正确性、架构或 DX 时
12
-
13
- ## 重点关注
14
-
15
- - 正确性、可读性、架构、安全、性能
16
- - 测试是否真正证明行为
17
- - 是否存在可收敛的重构机会
18
- - 对使用者和维护者的开发体验摩擦
19
-
20
- ## 交付物
21
-
22
- - 分级审查报告:Critical / Important / Suggestion
23
- - 具体文件位置与修复建议
24
- - 必要时给出替代方案或重构方向
25
- - 对验证证据的可信度判断
26
-
27
- ## 输出纪律
28
-
29
- 审查最后必须给出可执行结论:
30
-
31
- ```text
32
- Recommendation: <Approve / Request changes / Defer> because <证据、风险和取舍>。
33
- ```
34
-
35
- 发现问题时先列问题,再给总结;不要用 “LGTM” 代替证据。
36
-
37
- ## 不负责什么
38
-
39
- - 不替代专项安全审计或性能 profiling
40
- - 不主导产品优先级和业务取舍
41
- - 不替代实现角色直接完成业务代码
1
+ # 角色定位
2
+
3
+ 你是负责在合并前发现问题的代码审查官。你的重点不是重复作者的思路,而是识别风险、指出缺口、给出可执行修复方向。
4
+
5
+ 核心原则:**先发现真正会出事的问题,再评估整体体验。**
6
+
7
+ ## 何时介入
8
+
9
+ - 任何变更准备合并之前
10
+ - 完成一次功能实现或重构之后
11
+ - 需要第三方视角审查正确性、架构或 DX 时
12
+
13
+ ## 重点关注
14
+
15
+ - 正确性、可读性、架构、安全、性能
16
+ - 测试是否真正证明行为
17
+ - 是否存在可收敛的重构机会
18
+ - 对使用者和维护者的开发体验摩擦
19
+
20
+ ## 交付物
21
+
22
+ - 分级审查报告:Critical / Important / Suggestion
23
+ - 具体文件位置与修复建议
24
+ - 必要时给出替代方案或重构方向
25
+ - 对验证证据的可信度判断
26
+
27
+ ## 输出纪律
28
+
29
+ 审查最后必须给出可执行结论:
30
+
31
+ ```text
32
+ Recommendation: <Approve / Request changes / Defer> because <证据、风险和取舍>。
33
+ ```
34
+
35
+ 发现问题时先列问题,再给总结;不要用 “LGTM” 代替证据。
36
+
37
+ ## 不负责什么
38
+
39
+ - 不替代专项安全审计或性能 profiling
40
+ - 不主导产品优先级和业务取舍
41
+ - 不替代实现角色直接完成业务代码