@hongmaple0820/scale-engine 0.15.1 → 0.17.0
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/dist/agents/LeadershipPresets.d.ts +16 -0
- package/dist/agents/LeadershipPresets.js +152 -0
- package/dist/agents/LeadershipPresets.js.map +1 -0
- package/dist/api/cli.js +774 -8
- package/dist/api/cli.js.map +1 -1
- package/dist/artifact/types.d.ts +4 -0
- package/dist/artifact/types.js.map +1 -1
- package/dist/cli/phaseCommands.d.ts +14 -0
- package/dist/cli/phaseCommands.js +187 -6
- package/dist/cli/phaseCommands.js.map +1 -1
- package/dist/cli/vibeCommands.d.ts +20 -0
- package/dist/cli/vibeCommands.js +150 -173
- package/dist/cli/vibeCommands.js.map +1 -1
- package/dist/index.d.ts +9 -0
- package/dist/index.js +10 -0
- package/dist/index.js.map +1 -1
- package/dist/prompts/VibeTemplateGallery.d.ts +25 -0
- package/dist/prompts/VibeTemplateGallery.js +295 -0
- package/dist/prompts/VibeTemplateGallery.js.map +1 -0
- package/dist/skills/SkillRepository.d.ts +63 -0
- package/dist/skills/SkillRepository.js +365 -0
- package/dist/skills/SkillRepository.js.map +1 -0
- package/dist/tools/ToolCapabilityRegistry.d.ts +46 -0
- package/dist/tools/ToolCapabilityRegistry.js +223 -0
- package/dist/tools/ToolCapabilityRegistry.js.map +1 -0
- package/dist/tools/ToolEvidenceGate.d.ts +39 -0
- package/dist/tools/ToolEvidenceGate.js +117 -0
- package/dist/tools/ToolEvidenceGate.js.map +1 -0
- package/dist/tools/ToolEvidenceStore.d.ts +58 -0
- package/dist/tools/ToolEvidenceStore.js +129 -0
- package/dist/tools/ToolEvidenceStore.js.map +1 -0
- package/dist/tools/ToolOrchestrator.d.ts +67 -0
- package/dist/tools/ToolOrchestrator.js +246 -0
- package/dist/tools/ToolOrchestrator.js.map +1 -0
- package/dist/tools/ToolPolicy.d.ts +33 -0
- package/dist/tools/ToolPolicy.js +157 -0
- package/dist/tools/ToolPolicy.js.map +1 -0
- package/dist/tools/index.d.ts +5 -0
- package/dist/tools/index.js +6 -0
- package/dist/tools/index.js.map +1 -0
- package/dist/workflow/ContextGovernance.d.ts +51 -0
- package/dist/workflow/ContextGovernance.js +233 -0
- package/dist/workflow/ContextGovernance.js.map +1 -0
- package/dist/workflow/DiagnosticLoop.d.ts +40 -0
- package/dist/workflow/DiagnosticLoop.js +105 -0
- package/dist/workflow/DiagnosticLoop.js.map +1 -0
- package/dist/workflow/EngineeringStandards.d.ts +69 -0
- package/dist/workflow/EngineeringStandards.js +348 -6
- package/dist/workflow/EngineeringStandards.js.map +1 -1
- package/dist/workflow/GovernanceTemplatePacks.js +11 -9
- package/dist/workflow/GovernanceTemplatePacks.js.map +1 -1
- package/dist/workflow/GovernanceTemplates.js +15 -4
- package/dist/workflow/GovernanceTemplates.js.map +1 -1
- package/dist/workflow/TaskArtifactScaffolder.d.ts +22 -0
- package/dist/workflow/TaskArtifactScaffolder.js +55 -0
- package/dist/workflow/TaskArtifactScaffolder.js.map +1 -1
- package/dist/workflow/TddLoop.d.ts +47 -0
- package/dist/workflow/TddLoop.js +76 -0
- package/dist/workflow/TddLoop.js.map +1 -0
- package/dist/workflow/WorkflowGuidance.d.ts +26 -0
- package/dist/workflow/WorkflowGuidance.js +173 -0
- package/dist/workflow/WorkflowGuidance.js.map +1 -0
- package/dist/workflow/WorkflowOpenTasks.d.ts +16 -0
- package/dist/workflow/WorkflowOpenTasks.js +37 -0
- package/dist/workflow/WorkflowOpenTasks.js.map +1 -0
- package/dist/workflow/index.d.ts +5 -0
- package/dist/workflow/index.js +5 -0
- package/dist/workflow/index.js.map +1 -1
- package/package.json +2 -2
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
export type LeadershipPresetId = 'ceo-lead' | 'cto-lead' | 'product-lead' | 'ux-director' | 'qa-director' | 'security-lead' | 'delivery-lead';
|
|
2
|
+
export interface LeadershipPreset {
|
|
3
|
+
id: LeadershipPresetId;
|
|
4
|
+
name: string;
|
|
5
|
+
title: string;
|
|
6
|
+
whenToUse: string[];
|
|
7
|
+
decisionRights: string[];
|
|
8
|
+
coachingQuestions: string[];
|
|
9
|
+
defaultTeam: string[];
|
|
10
|
+
boundaries: string[];
|
|
11
|
+
}
|
|
12
|
+
export declare const LEADERSHIP_PRESETS: LeadershipPreset[];
|
|
13
|
+
export declare function listLeadershipPresets(): LeadershipPreset[];
|
|
14
|
+
export declare function getLeadershipPreset(id: string): LeadershipPreset | undefined;
|
|
15
|
+
export declare function selectLeadershipPreset(taskDescription: string): LeadershipPreset | undefined;
|
|
16
|
+
export declare function renderLeadershipPresetsMarkdown(): string;
|
|
@@ -0,0 +1,152 @@
|
|
|
1
|
+
export const LEADERSHIP_PRESETS = [
|
|
2
|
+
{
|
|
3
|
+
id: 'ceo-lead',
|
|
4
|
+
name: 'CEO',
|
|
5
|
+
title: '产品价值与商业闭环负责人',
|
|
6
|
+
whenToUse: ['新产品', '商业闭环', '需求优先级', '路线图', 'MVP 定义'],
|
|
7
|
+
decisionRights: ['产品价值与商业闭环优先级', '非目标裁剪', '上线范围和成功指标'],
|
|
8
|
+
coachingQuestions: [
|
|
9
|
+
'这个需求解决的是谁的真实问题?',
|
|
10
|
+
'最小可交付闭环是什么?',
|
|
11
|
+
'上线后用什么指标证明值得继续投入?',
|
|
12
|
+
],
|
|
13
|
+
defaultTeam: ['product-agent', 'ux-director', 'cto-lead', 'qa-director'],
|
|
14
|
+
boundaries: ['不能编造市场事实', '不能把用户想法直接当成验收标准', '必须明确非目标'],
|
|
15
|
+
},
|
|
16
|
+
{
|
|
17
|
+
id: 'cto-lead',
|
|
18
|
+
name: 'CTO',
|
|
19
|
+
title: '技术架构与工程质量负责人',
|
|
20
|
+
whenToUse: ['架构设计', '技术选型', '跨模块变更', '工程治理', '服务边界'],
|
|
21
|
+
decisionRights: ['技术架构与工程质量门槛', '模块边界', '验证策略', '回滚策略'],
|
|
22
|
+
coachingQuestions: [
|
|
23
|
+
'哪些契约变化会影响上下游?',
|
|
24
|
+
'哪些检查必须自动化,哪些可以人工验收?',
|
|
25
|
+
'这次改动如何避免引入长期维护负担?',
|
|
26
|
+
],
|
|
27
|
+
defaultTeam: ['architect-agent', 'backend-agent', 'frontend-agent', 'security-agent', 'test-agent'],
|
|
28
|
+
boundaries: ['不能绕过项目技术规范', '不能凭空声称测试通过', '不能牺牲安全和可维护性换短期速度'],
|
|
29
|
+
},
|
|
30
|
+
{
|
|
31
|
+
id: 'product-lead',
|
|
32
|
+
name: 'Product Lead',
|
|
33
|
+
title: '需求澄清与 PRD 负责人',
|
|
34
|
+
whenToUse: ['Mini-PRD', '用户故事', '验收标准', '异常场景'],
|
|
35
|
+
decisionRights: ['需求边界', '用户路径', '验收标准可测试性'],
|
|
36
|
+
coachingQuestions: [
|
|
37
|
+
'用户从哪里进入,从哪里完成目标?',
|
|
38
|
+
'权限不足、失败、空态和重试怎么处理?',
|
|
39
|
+
'哪些验收项可以自动化?',
|
|
40
|
+
],
|
|
41
|
+
defaultTeam: ['product-agent', 'docs-agent', 'test-agent'],
|
|
42
|
+
boundaries: ['验收标准必须可测试', '必须记录权限和数据影响', '不能留下模糊措辞'],
|
|
43
|
+
},
|
|
44
|
+
{
|
|
45
|
+
id: 'ux-director',
|
|
46
|
+
name: 'UX Director',
|
|
47
|
+
title: '体验架构与视觉审美负责人',
|
|
48
|
+
whenToUse: ['UI/UX', '视觉审美', '交互体验', '响应式', '可访问性'],
|
|
49
|
+
decisionRights: ['信息架构', '视觉方向', '交互状态', '设计验收证据'],
|
|
50
|
+
coachingQuestions: [
|
|
51
|
+
'用户最频繁的动作是否足够顺手?',
|
|
52
|
+
'错误、加载、空态和移动端是否都有设计?',
|
|
53
|
+
'界面是否符合产品类型,而不是模板化堆卡片?',
|
|
54
|
+
],
|
|
55
|
+
defaultTeam: ['ui-design-agent', 'frontend-agent', 'test-agent'],
|
|
56
|
+
boundaries: ['不能只描述功能不定义状态', '不能未截图就声称体验完成', '不能忽略可访问性'],
|
|
57
|
+
},
|
|
58
|
+
{
|
|
59
|
+
id: 'qa-director',
|
|
60
|
+
name: 'QA Director',
|
|
61
|
+
title: '验证严谨性与验收证据负责人',
|
|
62
|
+
whenToUse: ['测试策略', 'E2E', '验收', '回归', '发版前检查'],
|
|
63
|
+
decisionRights: ['测试范围', '证据质量', '阻断项判断'],
|
|
64
|
+
coachingQuestions: [
|
|
65
|
+
'哪些是主链路,哪些是边界场景?',
|
|
66
|
+
'失败输出是否足够定位问题?',
|
|
67
|
+
'哪些验证只是 dry-run,不能当成通过?',
|
|
68
|
+
],
|
|
69
|
+
defaultTeam: ['test-agent', 'code-review-agent', 'security-agent'],
|
|
70
|
+
boundaries: ['未运行不能说通过', '失败项不能隐藏', '跳过项必须说明原因'],
|
|
71
|
+
},
|
|
72
|
+
{
|
|
73
|
+
id: 'security-lead',
|
|
74
|
+
name: 'Security Lead',
|
|
75
|
+
title: '安全、隐私与供应链风险负责人',
|
|
76
|
+
whenToUse: ['认证授权', '敏感数据', '日志脱敏', '供应链', '高权限工具'],
|
|
77
|
+
decisionRights: ['安全门槛', '敏感操作确认', '供应链阻断', '审计要求'],
|
|
78
|
+
coachingQuestions: [
|
|
79
|
+
'输入、输出、日志和错误信息是否泄露敏感信息?',
|
|
80
|
+
'第三方脚本、Skill、MCP 是否经过安全扫描?',
|
|
81
|
+
'权限边界和回滚策略是否明确?',
|
|
82
|
+
],
|
|
83
|
+
defaultTeam: ['security-agent', 'code-review-agent', 'ops-agent'],
|
|
84
|
+
boundaries: ['禁止硬编码密钥', '禁止未经审查执行远程脚本', '危险操作必须显式确认'],
|
|
85
|
+
},
|
|
86
|
+
{
|
|
87
|
+
id: 'delivery-lead',
|
|
88
|
+
name: 'Delivery Lead',
|
|
89
|
+
title: '交付、文档资产与发版负责人',
|
|
90
|
+
whenToUse: ['PR', '发布', '文档同步', '资源归档', '多仓协作'],
|
|
91
|
+
decisionRights: ['分支边界', '交付证据', '文档资产生命周期', '发布节奏'],
|
|
92
|
+
coachingQuestions: [
|
|
93
|
+
'哪些文件应该提交,哪些只是临时产物?',
|
|
94
|
+
'多仓或子模块是否都在正确分支?',
|
|
95
|
+
'发版证据是否包含 commit、tag、远程和 registry 状态?',
|
|
96
|
+
],
|
|
97
|
+
defaultTeam: ['docs-agent', 'ops-agent', 'qa-director'],
|
|
98
|
+
boundaries: ['不能混入无关 dirty tree', '不能提交临时报告和本地配置', 'main/master 需显式授权'],
|
|
99
|
+
},
|
|
100
|
+
];
|
|
101
|
+
export function listLeadershipPresets() {
|
|
102
|
+
return [...LEADERSHIP_PRESETS];
|
|
103
|
+
}
|
|
104
|
+
export function getLeadershipPreset(id) {
|
|
105
|
+
return LEADERSHIP_PRESETS.find(preset => preset.id === id);
|
|
106
|
+
}
|
|
107
|
+
export function selectLeadershipPreset(taskDescription) {
|
|
108
|
+
const text = taskDescription.toLowerCase();
|
|
109
|
+
if (has(text, ['商业', '闭环', '路线', '价值', 'mvp']))
|
|
110
|
+
return getLeadershipPreset('ceo-lead');
|
|
111
|
+
if (has(text, ['架构', '技术选型', '服务边界', '模块', '工程质量']))
|
|
112
|
+
return getLeadershipPreset('cto-lead');
|
|
113
|
+
if (has(text, ['ui', 'ux', '视觉', '审美', '交互', '体验']))
|
|
114
|
+
return getLeadershipPreset('ux-director');
|
|
115
|
+
if (has(text, ['安全', '权限', '脱敏', '供应链', '注入']))
|
|
116
|
+
return getLeadershipPreset('security-lead');
|
|
117
|
+
if (has(text, ['测试', '验收', 'e2e', '回归']))
|
|
118
|
+
return getLeadershipPreset('qa-director');
|
|
119
|
+
if (has(text, ['发版', '发布', 'pr', '文档', '资产']))
|
|
120
|
+
return getLeadershipPreset('delivery-lead');
|
|
121
|
+
return getLeadershipPreset('product-lead');
|
|
122
|
+
}
|
|
123
|
+
export function renderLeadershipPresetsMarkdown() {
|
|
124
|
+
const lines = [
|
|
125
|
+
'# SCALE 领导者角色预设',
|
|
126
|
+
'',
|
|
127
|
+
'这些角色用于让 Agent 在不同场景下主动承担领导者、研究者、实干者和教练职责。角色不是装饰,而是决策权、引导问题、团队组合和边界约束。',
|
|
128
|
+
'',
|
|
129
|
+
];
|
|
130
|
+
for (const preset of LEADERSHIP_PRESETS) {
|
|
131
|
+
lines.push(`## ${preset.name} - ${preset.title}`);
|
|
132
|
+
lines.push('');
|
|
133
|
+
lines.push(`- ID: \`${preset.id}\``);
|
|
134
|
+
lines.push(`- 适用场景: ${preset.whenToUse.join(', ')}`);
|
|
135
|
+
lines.push(`- 默认团队: ${preset.defaultTeam.join(', ')}`);
|
|
136
|
+
lines.push(`- 决策权: ${preset.decisionRights.join(', ')}`);
|
|
137
|
+
lines.push('');
|
|
138
|
+
lines.push('### 引导问题');
|
|
139
|
+
for (const question of preset.coachingQuestions)
|
|
140
|
+
lines.push(`- ${question}`);
|
|
141
|
+
lines.push('');
|
|
142
|
+
lines.push('### 边界');
|
|
143
|
+
for (const boundary of preset.boundaries)
|
|
144
|
+
lines.push(`- ${boundary}`);
|
|
145
|
+
lines.push('');
|
|
146
|
+
}
|
|
147
|
+
return lines.join('\n');
|
|
148
|
+
}
|
|
149
|
+
function has(text, keywords) {
|
|
150
|
+
return keywords.some(keyword => text.includes(keyword.toLowerCase()));
|
|
151
|
+
}
|
|
152
|
+
//# sourceMappingURL=LeadershipPresets.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"LeadershipPresets.js","sourceRoot":"","sources":["../../src/agents/LeadershipPresets.ts"],"names":[],"mappings":"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"}
|