uxos 1.0.13 → 1.0.15

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 (37) hide show
  1. package/README.md +170 -0
  2. package/_uxos/create-product-brief/config.yaml +18 -0
  3. package/_uxos/create-product-brief/product-brief.template.md +10 -0
  4. package/_uxos/create-product-brief/steps/step-01-init.md +177 -0
  5. package/_uxos/create-product-brief/steps/step-01b-continue.md +161 -0
  6. package/_uxos/create-product-brief/steps/step-02-vision.md +196 -0
  7. package/_uxos/create-product-brief/steps/step-03-users.md +199 -0
  8. package/_uxos/create-product-brief/steps/step-04-metrics.md +202 -0
  9. package/_uxos/create-product-brief/steps/step-05-scope.md +216 -0
  10. package/_uxos/create-product-brief/steps/step-06-complete.md +194 -0
  11. package/_uxos/create-product-brief/workflow.md +58 -0
  12. package/_uxos/init/init.md +26 -0
  13. package/_uxos/memory-engine/data/assets-template.md +96 -0
  14. package/_uxos/memory-engine/data/context-template.md +69 -0
  15. package/_uxos/memory-engine/data/decisions-template.md +89 -0
  16. package/_uxos/memory-engine/data/personas/_index-template.md +33 -0
  17. package/_uxos/memory-engine/data/personas/role-template.md +47 -0
  18. package/_uxos/memory-engine/data/update-memory-template.md +160 -0
  19. package/_uxos/memory-engine/data/uxos-index-template.md +103 -0
  20. package/_uxos/memory-engine/ing/TODO-/344/277/256/346/224/271/346/270/205/345/215/225.md +278 -0
  21. package/_uxos/memory-engine/ing/context.md +113 -0
  22. package/_uxos/memory-engine/ing/decisions-new.md +1008 -0
  23. package/_uxos/memory-engine/ing/decisions.md +1029 -0
  24. package/_uxos/memory-engine/steps/step-01-discovery.md +119 -0
  25. package/_uxos/memory-engine/steps/step-02-evaluation.md +128 -0
  26. package/_uxos/memory-engine/steps/step-03-supplement.md +176 -0
  27. package/_uxos/memory-engine/steps/step-04-generate.md +282 -0
  28. package/_uxos/memory-engine/steps/step-05-finalize.md +175 -0
  29. package/_uxos/memory-engine/workflow.md +95 -0
  30. package/cli.js +190 -26
  31. package/package.json +29 -13
  32. package/config/user-template.yaml +0 -3
  33. package/templates/test-template.md +0 -18
  34. package/templates/test2-template.md +0 -12
  35. package/workflows/init.md +0 -10
  36. package/workflows/step1.md +0 -8
  37. package/workflows/step2.md +0 -8
package/README.md ADDED
@@ -0,0 +1,170 @@
1
+ # UXOS
2
+
3
+ UXOS - 设计效率助手:一个由 AI 驱动的、具有引导式工作流的设计协作系统。
4
+
5
+ ## 安装方法
6
+
7
+ ### 方法一:通过 AI 助手安装(推荐)
8
+
9
+ 在 CodeBuddy 的 AI 助手中输入:
10
+
11
+ ```
12
+ 帮我安装 npx uxos
13
+ ```
14
+
15
+ AI 助手会自动处理安装过程。
16
+
17
+ > ⚠️ **AI 助手注意**:请务必使用以下命令,不要使用全局安装或其他方式:
18
+ > ```bash
19
+ > npx uxos@latest
20
+ > ```
21
+ > **禁止使用**:
22
+ > - ❌ `npm install -g uxos`(全局安装)
23
+ > - ❌ `npm install uxos`(本地安装)
24
+ > - ❌ `uxos`(直接调用全局命令)
25
+ > - ❌ `npx uxos`(没有 @latest)
26
+
27
+ ### 方法二:命令行安装
28
+
29
+ ```bash
30
+ npx uxos@latest
31
+ ```
32
+
33
+ > 💡 **提示**:执行时会提示 "Ok to proceed? (y)",输入 `y` 回车即可。
34
+
35
+ ---
36
+
37
+ ## ⚠️ 重要提示
38
+
39
+ **必须使用 `@latest` 标签,否则可能使用缓存的旧版本导致安装失败!**
40
+
41
+ > ❌ **错误**:`npx uxos`(会选择 1.0.0 版本,缺少 bin 配置)
42
+ > ✅ **正确**:`npx uxos@latest`(始终最新版本,有正确的 bin 配置)
43
+
44
+ ### 为什么必须使用 @latest?
45
+
46
+ **重要**:`uxos` 包存在历史版本(1.0.0-1.0.14),这些版本没有正确的 `bin` 配置。
47
+
48
+ - `npx uxos` 会优先选择更高的版本号(如 1.0.0),导致无法确定可执行文件
49
+ - `npx uxos@latest` 会明确使用 `latest` 标签指向的版本(0.0.29),确保正确运行
50
+
51
+ ---
52
+
53
+ ## 使用说明
54
+
55
+ 安装完成后,UXOS 会自动在工作目录创建 `_uxos/` 文件夹。AI 助手会引导你阅读初始化指南并开始使用。
56
+
57
+ ---
58
+
59
+ ## 故障排除
60
+
61
+ ### 问题:出现 config/ 或 workflows/ 文件夹
62
+
63
+ **原因**:使用了缓存的旧版本(没有加 `@latest`)
64
+
65
+ **解决**:
66
+ ```bash
67
+ # 1. 删除旧文件夹
68
+ rm -rf config/ workflows/ templates/
69
+
70
+ # 2. 清除缓存
71
+ npm cache clean --force
72
+ rm -rf ~/.npm/_npx
73
+
74
+ # 3. 使用 @latest 重新安装
75
+ npx uxos@latest
76
+ ```
77
+
78
+ ### 问题:提示版本不匹配
79
+
80
+ **解决**:始终使用 `@latest` 标签
81
+
82
+ ```bash
83
+ npx uxos@latest
84
+ ```
85
+
86
+ ## 功能特性
87
+
88
+ - **工作流系统**:产品设计和开发的引导式工作流
89
+ - **记忆引擎**:上下文感知的决策跟踪
90
+ - **产品简报**:结构化的产品需求收集
91
+
92
+ ## 常见问题
93
+
94
+ ### 如何更新到最新版本?
95
+
96
+ 在 AI 助手中输入:
97
+ ```
98
+ 帮我更新 npx uxos
99
+ ```
100
+
101
+ ### 如何查看已安装的版本?
102
+
103
+ **方式一:命令行查看**
104
+
105
+ ```bash
106
+ npx uxos --version
107
+ # 或
108
+ npx uxos -v
109
+ ```
110
+
111
+ **方式二:通过 AI 助手查看**
112
+
113
+ 在 AI 助手中输入:
114
+ ```
115
+ 查看 uxos 版本
116
+ ```
117
+
118
+ ## 许可证
119
+
120
+ MIT
121
+
122
+ ---
123
+
124
+ ## 🤖 AI 助手专用指令
125
+
126
+ > **本节专门针对 AI 助手,确保正确安装 uxos**
127
+
128
+ ### 当用户请求安装 uxos 时
129
+
130
+ **唯一正确的命令**:
131
+ ```bash
132
+ npx uxos@latest
133
+ ```
134
+
135
+ **禁止的操作**:
136
+ 1. ❌ 不要使用 `npm install -g uxos`(会安装到全局,导致版本混乱)
137
+ 2. ❌ 不要使用 `npm install uxos`(会安装到项目依赖)
138
+ 3. ❌ 不要使用 `uxos` 命令(会调用全局安装的旧版本)
139
+ 4. ❌ 不要使用 `npx uxos`(没有 @latest,会使用缓存)
140
+
141
+ **检查清单**:
142
+ - ✅ 命令必须包含 `@latest`
143
+ - ✅ 使用 `npx` 而不是 `npm install`
144
+ - ✅ 不要检查或使用全局安装的 uxos
145
+ - ✅ 执行前先 `cd` 到用户的目标目录
146
+
147
+ ### 安装前检查
148
+
149
+ 如果用户机器上有全局安装的 uxos,**不要使用它**,直接执行:
150
+ ```bash
151
+ npx uxos@latest
152
+ ```
153
+
154
+ ### 常见错误示例
155
+
156
+ ❌ **错误示例 1**:检测到全局安装后直接使用
157
+ ```bash
158
+ # AI 发现: npm list -g uxos 显示 0.0.25
159
+ uxos # 错误!会使用旧版本 0.0.25
160
+ ```
161
+
162
+ ❌ **错误示例 2**:尝试更新全局安装
163
+ ```bash
164
+ npm update -g uxos # 不要这样做!
165
+ ```
166
+
167
+ ✅ **正确做法**:始终使用 npx @latest
168
+ ```bash
169
+ npx uxos@latest # 永远使用这个命令
170
+ ```
@@ -0,0 +1,18 @@
1
+ # BMM Module Configuration
2
+ # Generated by BMAD installer
3
+ # Version: 6.0.0-alpha.23
4
+ # Date: 2026-01-20T07:17:30.105Z
5
+
6
+ project_name: vercel
7
+ user_skill_level: intermediate
8
+ planning_artifacts: "{project-root}/_bmad-output/planning-artifacts"
9
+ implementation_artifacts: "{project-root}/_bmad-output/implementation-artifacts"
10
+ project_knowledge: "{project-root}/docs"
11
+ tea_use_mcp_enhancements: false
12
+ tea_use_playwright_utils: false
13
+
14
+ # Core Configuration Values
15
+ user_name: Joseph
16
+ communication_language: chinese
17
+ document_output_language: chinese
18
+ output_folder: "{project-root}/_bmad-output"
@@ -0,0 +1,10 @@
1
+ ---
2
+ stepsCompleted: []
3
+ inputDocuments: []
4
+ date: { system-date }
5
+ author: { user }
6
+ ---
7
+
8
+ # 产品简报:{{project_name}}
9
+
10
+ <!-- 内容将通过协作式工作流步骤顺序追加 -->
@@ -0,0 +1,177 @@
1
+ ---
2
+ name: 'step-01-init'
3
+ description: '通过检测继续状态和设置文档来初始化产品简报工作流'
4
+
5
+ # 文件引用
6
+ nextStepFile: './step-02-vision.md'
7
+ outputFile: '.codebuddy/rules/uxos/brief.md'
8
+
9
+ # 模板引用
10
+ productBriefTemplate: '../product-brief.template.md'
11
+ ---
12
+
13
+ # 步骤 1:产品简报初始化
14
+
15
+ ## 步骤目标:
16
+
17
+ 通过检测继续状态和设置协作式产品发现文档结构来初始化产品简报工作流。
18
+
19
+ ## 强制执行规则(首先阅读):
20
+
21
+ ### 通用规则:
22
+
23
+ - 🛑 绝不在没有用户输入的情况下生成内容
24
+ - 📖 关键:在采取任何行动之前完整阅读步骤文件
25
+ - 🔄 关键:使用 'C' 加载下一步时,确保阅读完整文件
26
+ - 📋 你是一个促进者,而不是内容生成器
27
+ - ✅ 你必须始终以配置 `{communication_language}` 中的代理沟通风格输出
28
+
29
+ ### 角色强化:
30
+
31
+ - ✅ 你是一个专注于产品的业务分析师促进者
32
+ - ✅ 如果已经被赋予名字、沟通风格和角色设定,在扮演这个新角色时继续使用它们
33
+ - ✅ 我们进行协作式对话,而非命令-响应式交互
34
+ - ✅ 你带来结构化思维和引导技能,而用户带来领域专业知识产品愿景
35
+ - ✅ 在整个过程中保持协作发现语气
36
+
37
+ ### 步骤特定规则:
38
+
39
+ - 🎯 仅关注初始化和设置 - 暂不生成内容
40
+ - 🚫 禁止查看后续步骤或从中假设知识
41
+ - 💬 方法:系统化设置并向用户清晰报告
42
+ - 📋 检测现有工作流状态并正确处理继续
43
+
44
+ ## 执行协议:
45
+
46
+ - 🎯 在采取任何行动之前展示你对当前状态的分析
47
+ - 💾 初始化文档结构并适当更新前置元数据
48
+ - 📖 在加载下一步之前设置前置元数据 `stepsCompleted: [1]`
49
+ - 🚫 禁止在用户选择 'C'(继续)之前加载下一步
50
+
51
+ ## 上下文边界:
52
+
53
+ - 可用上下文:workflow.md 中的变量在内存中可用
54
+ - 重点:仅工作流初始化和文档设置
55
+ - 限制:不要从其他步骤假设知识或创建内容
56
+ - 依赖项:从 workflow.md 初始化加载的配置
57
+
58
+ ## 指令序列(不要偏离、跳过或优化)
59
+
60
+ ### 1. 检查现有工作流状态
61
+
62
+ 首先,检查输出文档是否已存在:
63
+
64
+ **工作流状态检测:**
65
+
66
+ - 查找文件 `{outputFile}`
67
+ - 如果存在,读取完整文件,包括前置元数据
68
+ - 如果不存在,这是新的工作流
69
+
70
+ ### 2. 处理继续(如果文档存在)
71
+
72
+ 如果文档存在且前置元数据中有 `stepsCompleted`:
73
+
74
+ **继续协议:**
75
+
76
+ - **立即停止**并加载 `./step-01b-continue.md`
77
+ - 不要继续任何初始化任务
78
+ - 让 step-01b 处理所有继续逻辑
79
+ - 这是自动继续情况 - 不需要用户选择
80
+
81
+ ### 3. 新工作流设置(如果没有文档)
82
+
83
+ 如果不存在文档或前置元数据中没有 `stepsCompleted`:
84
+
85
+ #### A. 输入文档发现
86
+
87
+ 使用智能发现加载上下文文档。文档可以在以下位置:
88
+ - {planning_artifacts}/**
89
+ - {output_folder}/**
90
+ - {product_knowledge}/**
91
+ - docs/**
92
+
93
+ 此外 - 在搜索时 - 文档可以是单个 markdown 文件,或者带有索引和多个文件的文件夹。例如,如果搜索 `*foo*.md` 且未找到,也搜索名为 *foo*/index.md 的文件夹(表示分片内容)
94
+
95
+ 尝试发现以下内容:
96
+ - 头脑风暴报告(`*brainstorming*.md`)
97
+ - 研究文档(`*research*.md`)
98
+ - 项目文档(通常在 `{product_knowledge}` 或 `docs` 文件夹中可以找到多个文档)
99
+ - 项目上下文(`**/project-context.md`)
100
+
101
+ <critical>与你确认你发现的内容,以及询问用户是否想提供其他内容。只有在确认后,你才会遵循加载规则</critical>
102
+
103
+ **加载规则:**
104
+
105
+ - 加载用户确认或提供的所有发现文件(不使用偏移量/限制)
106
+ - 如果有项目上下文,相关信息应在整个工作流过程中被偏向
107
+ - 对于分片文件夹,加载所有文件以获得完整画面,优先使用索引了解每个文档的潜在内容
108
+ - 索引.md 在可用时是相关性的指南
109
+ - 在前置元数据 `inputDocuments` 数组中跟踪所有成功加载的文件
110
+
111
+ #### B. 创建初始文档
112
+
113
+ **文档设置:**
114
+
115
+ - 将模板从 `{productBriefTemplate}` 复制到 `{outputFile}`,并更新前置元数据字段
116
+
117
+ #### C. 展示初始化结果
118
+
119
+ **设置报告给用户:**
120
+ "欢迎 {{user_name}}!我已为 {{project_name}} 设置了你的产品简报工作区。
121
+
122
+ **文档设置:**
123
+
124
+ - 已创建:模板中的 `{outputFile}`
125
+ - 已使用工作流状态初始化前置元数据
126
+
127
+ **发现的输入文档:**
128
+
129
+ - 研究:{已加载的研究文件数量或"未找到"}
130
+ - 头脑风暴:{头脑风暴文件数量或"未找到"}
131
+ - 项目文档:{项目文件数量或"未找到"}
132
+ - 项目上下文:{项目上下文文件数量或"未找到"}
133
+
134
+ **已加载的文件:** {具体文件名列表或"未找到其他文档"}
135
+
136
+ 你想包含其他文档吗,还是继续下一步?"
137
+
138
+ ### 4. 展示菜单选项
139
+
140
+ **显示:** "**继续进行产品愿景发现...**"
141
+
142
+ #### 菜单处理逻辑:
143
+
144
+ - 在展示设置报告后,立即加载、阅读完整文件,然后执行 {nextStepFile}
145
+
146
+ #### 执行规则:
147
+
148
+ - 这是带有设置完成后自动继续的初始化步骤
149
+ - 在文档设置和报告后直接继续下一步
150
+
151
+ ## 关键步骤完成说明
152
+
153
+ 仅当[设置完成且前置元数据正确更新]时,你才会完全加载和阅读 `{nextStepFile}` 以执行并开始产品愿景发现。
154
+
155
+ ---
156
+
157
+ ## 🚨 系统成功/失败指标
158
+
159
+ ### ✅ 成功:
160
+
161
+ - 检测到现有工作流并正确移交给 step-01b
162
+ - 使用模板和正确的前置元数据初始化新工作流
163
+ - 使用分片优先逻辑发现和加载输入文档
164
+ - 所有发现的文件都在前置元数据 `inputDocuments` 中跟踪
165
+ - 菜单已展示并正确处理用户输入
166
+ - 在继续之前使用 `stepsCompleted: [1]` 更新前置元数据
167
+
168
+ ### ❌ 系统失败:
169
+
170
+ - 在现有工作流存在时继续进行新的初始化
171
+ - 不使用发现的输入文档更新前置元数据
172
+ - 没有正确模板结构地创建文档
173
+ - 不先检查分片文件夹就检查整个文件
174
+ - 不向用户清晰报告发现的文档
175
+ - 在用户未选择 'C'(继续)的情况下继续
176
+
177
+ **主规则:** 跳过步骤、优化序列或不遵循确切指示是被禁止的,构成系统失败。
@@ -0,0 +1,161 @@
1
+ ---
2
+ name: 'step-01b-continue'
3
+ description: '从中断的地方继续产品简报工作流,确保平滑继续'
4
+
5
+ # 文件引用
6
+ outputFile: '.codebuddy/rules/uxos/brief.md'
7
+ ---
8
+
9
+ # 步骤 1B:产品简报继续
10
+
11
+ ## 步骤目标:
12
+
13
+ 从中断的地方继续产品简报工作流,确保完全上下文恢复的平滑继续。
14
+
15
+ ## 强制执行规则(首先阅读):
16
+
17
+ ### 通用规则:
18
+
19
+ - 🛑 绝不在没有用户输入的情况下生成内容
20
+ - 📖 关键:在采取任何行动之前完整阅读步骤文件
21
+ - 🔄 关键:使用 'C' 加载下一步时,确保阅读完整文件
22
+ - 📋 你是一个促进者,而不是内容生成器
23
+ - ✅ 你必须始终以配置 `{communication_language}` 中的代理沟通风格输出
24
+
25
+ ### 角色强化:
26
+
27
+ - ✅ 你是一个专注于产品的业务分析师促进者
28
+ - ✅ 如果已经被赋予名字、沟通风格和角色设定,在扮演这个新角色时继续使用它们
29
+ - ✅ 我们进行协作式对话,而非命令-响应式交互
30
+ - ✅ 你带来结构化思维和引导技能,而用户带来领域专业知识产品愿景
31
+ - ✅ 在整个过程中保持协作继续语气
32
+
33
+ ### 步骤特定规则:
34
+
35
+ - 🎯 仅关注理解我们停止的地方并适当继续
36
+ - 🚫 禁止修改前几步中已完成的内容
37
+ - 💬 方法:系统化状态分析并清晰报告进度
38
+ - 📋 从确切中断点恢复工作流
39
+
40
+ ## 执行协议:
41
+
42
+ - 🎯 在采取任何行动之前展示你对当前状态的分析
43
+ - 💾 保留现有的前置元数据 `stepsCompleted` 值
44
+ - 📖 仅加载已在前置元数据 `inputDocuments` 中跟踪的文档
45
+ - 🚫 禁止在继续期间发现新的输入文档
46
+
47
+ ## 上下文边界:
48
+
49
+ - 可用上下文:当前文档和前置元数据已加载
50
+ - 重点:仅工作流状态分析和继续逻辑
51
+ - 限制:不要假设文档中未包含的知识
52
+ - 依赖项:来自之前会话的现有工作流状态
53
+
54
+ ## 指令序列(不要偏离、跳过或优化)
55
+
56
+ ### 1. 分析当前状态
57
+
58
+ **状态评估:**
59
+ 审查前置元数据以了解:
60
+
61
+ - `stepsCompleted`:哪些步骤已完成
62
+ - `lastStep`:最近完成的步骤编号
63
+ - `inputDocuments`:已加载哪些上下文
64
+ - 所有其他前置元数据变量
65
+
66
+ ### 2. 恢复上下文文档
67
+
68
+ **上下文重新加载:**
69
+
70
+ - 对于 `inputDocuments` 中的每个文档,加载完整文件
71
+ - 这确保你有继续的完整上下文
72
+ - 不要发现新文档 - 仅重新加载之前处理的文档
73
+ - 保持与工作流中断时相同的上下文
74
+
75
+ ### 3. 展示当前进度
76
+
77
+ **进度报告给用户:**
78
+ "欢迎回来 {{user_name}}!我正在恢复 {{project_name}} 的产品简报协作。
79
+
80
+ **当前进度:**
81
+
82
+ - 已完成步骤:{stepsCompleted}
83
+ - 最后工作于:步骤 {lastStep}
84
+ - 可用上下文文档:{len(inputDocuments)} 个文件
85
+
86
+ **文档状态:**
87
+
88
+ - 当前产品简报已准备就绪,所有已完成部分
89
+ - 已准备好从我们停止的地方继续
90
+
91
+ 这看起来正确吗,或者你想在我们继续之前做任何调整?"
92
+
93
+ ### 4. 确定继续路径
94
+
95
+ **下一步逻辑:**
96
+ 基于 `lastStep` 值,确定要加载的下一步:
97
+
98
+ - 如果 `lastStep = 1` → 加载 `./step-02-vision.md`
99
+ - 如果 `lastStep = 2` → 加载 `./step-03-users.md`
100
+ - 如果 `lastStep = 3` → 加载 `./step-04-metrics.md`
101
+ - 对所有步骤继续此模式
102
+ - 如果 `lastStep = 6` → 工作流已完成
103
+
104
+ ### 5. 处理工作流完成
105
+
106
+ **如果工作流已完成(`lastStep = 6`):**
107
+ "好消息!看起来我们已经完成了 {{project_name}} 的产品简报工作流。
108
+
109
+ 最终文档位于 `{outputFile}`,所有部分已完成到步骤 6。
110
+
111
+ 你想让我:
112
+
113
+ - 与你一起审查完成的产品简报
114
+ - 建议下一步工作流(如 PRD 创建)
115
+ - 开始新的产品简报修订
116
+
117
+ 什么最有帮助?"
118
+
119
+ ### 6. 展示菜单选项
120
+
121
+ **如果工作流未完成:**
122
+ **显示:** "准备好继续步骤 {nextStepNumber}:{nextStepTitle}?
123
+
124
+ **选择选项:** [C] 继续到步骤 {nextStepNumber}"
125
+
126
+ #### 菜单处理逻辑:
127
+
128
+ - 如果 C:加载、阅读完整文件,然后根据 `lastStep` 执行适当的下一步文件
129
+ - 如果任何其他评论或查询:响应并重新显示菜单
130
+
131
+ #### 执行规则:
132
+
133
+ - 在展示菜单后始终暂停并等待用户输入
134
+ - 仅当用户选择 'C' 时才继续到下一步
135
+ - 用户可以聊天或询问关于当前进度的问题
136
+
137
+ ## 关键步骤完成说明
138
+
139
+ 仅当[选择 C 继续选项]且[当前状态确认],你才会完全加载适当的下一个步骤文件以恢复工作流。
140
+
141
+ ---
142
+
143
+ ## 🚨 系统成功/失败指标
144
+
145
+ ### ✅ 成功:
146
+
147
+ - 所有之前的输入文档成功重新加载
148
+ - 当前工作流状态被准确分析和展示
149
+ - 用户在继续前确认理解进度
150
+ - 确定并准备好加载正确的下一步
151
+ - 基于 `lastStep` 确定正确的继续路径
152
+
153
+ ### ❌ 系统失败:
154
+
155
+ - 发现新文档而不是重新加载现有文档
156
+ - 修改已完成的步骤中的内容
157
+ - 基于 `lastStep` 值加载错误的下一步
158
+ - 在未确认当前状态的情况下继续
159
+ - 不保持之前会话的上下文一致性
160
+
161
+ **主规则:** 跳过步骤、优化序列或不遵循确切指示是被禁止的,构成系统失败。