@archsight/aios 1.0.1 → 1.1.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.
Files changed (39) hide show
  1. package/CHANGELOG.md +49 -5
  2. package/LICENSE +184 -21
  3. package/README.md +43 -17
  4. package/agents/README.md +2 -1
  5. package/agents/euclid/constraints.md +2 -1
  6. package/agents/euclid/responsibilities.md +1 -1
  7. package/agents/euclid/role.md +1 -1
  8. package/agents/euclid/system-prompt.md +5 -2
  9. package/agents/euclid/workflow.md +3 -3
  10. package/bin/archsight-aios.mjs +436 -1
  11. package/docs/quickstart.md +2 -1
  12. package/governance/README.md +3 -0
  13. package/governance/arbitration-protocol.md +153 -0
  14. package/package.json +3 -3
  15. package/runtime/README.md +7 -0
  16. package/runtime/agent-routing.md +41 -17
  17. package/runtime/archsight-aios.manifest.json +58 -36
  18. package/runtime/capability-adapters.json +27 -0
  19. package/runtime/capability-registry.json +458 -0
  20. package/runtime/capability-registry.schema.json +135 -0
  21. package/runtime/skill-routing.md +17 -13
  22. package/skills/README.md +12 -9
  23. package/skills/aios-arch/SKILL.md +62 -24
  24. package/skills/aios-ceo/SKILL.md +11 -8
  25. package/skills/aios-exec/SKILL.md +11 -8
  26. package/skills/aios-knowledge/SKILL.md +12 -9
  27. package/skills/aios-plan/SKILL.md +38 -28
  28. package/skills/aios-review/SKILL.md +12 -9
  29. package/skills/aios-runtime/SKILL.md +14 -11
  30. package/skills/aios-structural/SKILL.md +67 -0
  31. package/skills/aios-structural/agents/openai.yaml +4 -0
  32. package/templates/project-ai/.ai/ARCHSIGHT_AIOS_RULES.md +13 -10
  33. package/templates/project-ai/.ai/agent-routing.md +17 -12
  34. package/templates/project-ai/.ai/skills.md +14 -11
  35. package/templates/project-ai/.ai/workflows.md +6 -5
  36. package/workflows/README.md +2 -0
  37. package/workflows/architecture-review.md +44 -22
  38. package/workflows/feature-development.md +25 -19
  39. package/workflows/rag-pipeline.md +9 -5
@@ -0,0 +1,458 @@
1
+ {
2
+ "schema": 1,
3
+ "description": "ArchSight AIOS 最小 Capability 注册表。注册表定义接口、权限边界和证据契约;本地工具适配器由 runtime/capability-adapters.json 声明。",
4
+ "capabilities": [
5
+ {
6
+ "id": "repo.test_runner",
7
+ "type": "verification",
8
+ "ownerAgents": ["hephaestus", "argus", "mason"],
9
+ "allowedSkills": ["aios-exec", "aios-review", "aios-plan"],
10
+ "authorityLevel": "L1",
11
+ "description": "运行项目声明的测试、构建、lint、typecheck 或 smoke 命令,并把退出码和摘要作为交付仲裁证据。",
12
+ "status": "adapter-required",
13
+ "inputSchema": {
14
+ "type": "object",
15
+ "required": ["cwd", "command"],
16
+ "properties": {
17
+ "cwd": {
18
+ "type": "string"
19
+ },
20
+ "command": {
21
+ "type": "string"
22
+ },
23
+ "timeoutSeconds": {
24
+ "type": "integer",
25
+ "minimum": 1
26
+ }
27
+ }
28
+ },
29
+ "outputSchema": {
30
+ "type": "object",
31
+ "required": ["status", "exitCode", "command", "stdoutSummary", "stderrSummary"],
32
+ "properties": {
33
+ "status": {
34
+ "type": "string",
35
+ "enum": ["pass", "fail", "error"]
36
+ },
37
+ "exitCode": {
38
+ "type": "integer"
39
+ },
40
+ "command": {
41
+ "type": "string"
42
+ },
43
+ "stdoutSummary": {
44
+ "type": "string"
45
+ },
46
+ "stderrSummary": {
47
+ "type": "string"
48
+ },
49
+ "artifacts": {
50
+ "type": "array",
51
+ "items": {
52
+ "type": "string"
53
+ }
54
+ }
55
+ }
56
+ },
57
+ "evidenceContract": {
58
+ "requiredFields": ["command", "exitCode", "status"],
59
+ "invalidWhenMissing": ["command", "exitCode", "status"]
60
+ },
61
+ "blockingRules": [
62
+ {
63
+ "when": "status == fail",
64
+ "severity": "P0",
65
+ "action": "block"
66
+ },
67
+ {
68
+ "when": "status == error",
69
+ "severity": "P1",
70
+ "action": "hold"
71
+ }
72
+ ],
73
+ "humanEscalation": ["skip_required_tests", "production_release_after_failed_check"]
74
+ },
75
+ {
76
+ "id": "knowledge.norm_lookup",
77
+ "type": "compliance_lookup",
78
+ "ownerAgents": ["vitruvius", "athena"],
79
+ "allowedSkills": ["aios-knowledge", "aios-arch", "aios-ceo"],
80
+ "authorityLevel": "L3",
81
+ "description": "按地区、专业、版本、条文和适用条件检索规范知识,返回可追溯引用和适用性判断。",
82
+ "status": "declared-interface",
83
+ "inputSchema": {
84
+ "type": "object",
85
+ "required": ["query"],
86
+ "properties": {
87
+ "query": {
88
+ "type": "string"
89
+ },
90
+ "region": {
91
+ "type": "string"
92
+ },
93
+ "discipline": {
94
+ "type": "string"
95
+ },
96
+ "sourceVersion": {
97
+ "type": "string"
98
+ },
99
+ "projectCondition": {
100
+ "type": "string"
101
+ }
102
+ }
103
+ },
104
+ "outputSchema": {
105
+ "type": "object",
106
+ "required": ["status", "citations", "applicability"],
107
+ "properties": {
108
+ "status": {
109
+ "type": "string",
110
+ "enum": ["found", "not_found", "conflict", "inapplicable", "error"]
111
+ },
112
+ "citations": {
113
+ "type": "array",
114
+ "items": {
115
+ "type": "object"
116
+ }
117
+ },
118
+ "applicability": {
119
+ "type": "string",
120
+ "enum": ["applicable", "not_applicable", "need_context"]
121
+ },
122
+ "sourceVersion": {
123
+ "type": "string"
124
+ },
125
+ "notes": {
126
+ "type": "string"
127
+ }
128
+ }
129
+ },
130
+ "evidenceContract": {
131
+ "requiredFields": ["status", "citations", "applicability", "sourceVersion"],
132
+ "invalidWhenMissing": ["citations", "applicability", "sourceVersion"]
133
+ },
134
+ "blockingRules": [
135
+ {
136
+ "when": "status == conflict",
137
+ "severity": "P0",
138
+ "action": "hold"
139
+ },
140
+ {
141
+ "when": "applicability == need_context",
142
+ "severity": "P1",
143
+ "action": "hold"
144
+ }
145
+ ],
146
+ "humanEscalation": ["legal_compliance_final_claim", "formal_drawing_review"]
147
+ },
148
+ {
149
+ "id": "solver.beam_deflection",
150
+ "type": "deterministic_solver",
151
+ "ownerAgents": ["euclid"],
152
+ "allowedSkills": ["aios-structural"],
153
+ "authorityLevel": "L1",
154
+ "description": "梁挠度计算接口示例。LLM 只负责参数提取和结果解释,数值计算必须由外部求解器完成。",
155
+ "status": "implemented",
156
+ "inputSchema": {
157
+ "type": "object",
158
+ "required": ["span", "elasticModulus", "secondMomentOfArea", "load"],
159
+ "properties": {
160
+ "span": {
161
+ "type": "object",
162
+ "required": ["value", "unit"]
163
+ },
164
+ "elasticModulus": {
165
+ "type": "object",
166
+ "required": ["value", "unit"]
167
+ },
168
+ "secondMomentOfArea": {
169
+ "type": "object",
170
+ "required": ["value", "unit"]
171
+ },
172
+ "load": {
173
+ "type": "object",
174
+ "required": ["value", "unit", "case"]
175
+ },
176
+ "boundaryCondition": {
177
+ "type": "string"
178
+ }
179
+ }
180
+ },
181
+ "outputSchema": {
182
+ "type": "object",
183
+ "required": ["status", "deflection", "inputValidated", "formulaRef"],
184
+ "properties": {
185
+ "status": {
186
+ "type": "string",
187
+ "enum": ["pass", "fail", "invalid_input", "error"]
188
+ },
189
+ "deflection": {
190
+ "type": "object",
191
+ "required": ["value", "unit"]
192
+ },
193
+ "inputValidated": {
194
+ "type": "boolean"
195
+ },
196
+ "formulaRef": {
197
+ "type": "string"
198
+ },
199
+ "warnings": {
200
+ "type": "array",
201
+ "items": {
202
+ "type": "string"
203
+ }
204
+ }
205
+ }
206
+ },
207
+ "evidenceContract": {
208
+ "requiredFields": ["status", "deflection", "inputValidated", "formulaRef"],
209
+ "invalidWhenMissing": ["inputValidated", "formulaRef"]
210
+ },
211
+ "blockingRules": [
212
+ {
213
+ "when": "status == invalid_input",
214
+ "severity": "P0",
215
+ "action": "block"
216
+ },
217
+ {
218
+ "when": "inputValidated == false",
219
+ "severity": "P0",
220
+ "action": "block"
221
+ },
222
+ {
223
+ "when": "status == error",
224
+ "severity": "P1",
225
+ "action": "hold"
226
+ }
227
+ ],
228
+ "humanEscalation": ["structural_safety_final_claim", "production_structural_design"]
229
+ },
230
+ {
231
+ "id": "solver.beam_deflection_serviceability_check",
232
+ "type": "deterministic_solver",
233
+ "ownerAgents": ["euclid"],
234
+ "allowedSkills": ["aios-structural"],
235
+ "authorityLevel": "L1",
236
+ "description": "梁挠度正常使用限值校核接口。当前用于挠度服务性校核,不代表材料强度、稳定或规范承载力设计。",
237
+ "status": "implemented",
238
+ "inputSchema": {
239
+ "type": "object",
240
+ "required": ["span", "elasticModulus", "secondMomentOfArea", "load"],
241
+ "properties": {
242
+ "span": {
243
+ "type": "object",
244
+ "required": ["value", "unit"]
245
+ },
246
+ "elasticModulus": {
247
+ "type": "object",
248
+ "required": ["value", "unit"]
249
+ },
250
+ "secondMomentOfArea": {
251
+ "type": "object",
252
+ "required": ["value", "unit"]
253
+ },
254
+ "load": {
255
+ "type": "object",
256
+ "required": ["value", "unit", "case"]
257
+ },
258
+ "boundaryCondition": {
259
+ "type": "string"
260
+ },
261
+ "deflectionLimitRatio": {
262
+ "type": "number"
263
+ }
264
+ }
265
+ },
266
+ "outputSchema": {
267
+ "type": "object",
268
+ "required": ["status", "checkType", "deflection", "allowable", "inputValidated"],
269
+ "properties": {
270
+ "status": {
271
+ "type": "string",
272
+ "enum": ["pass", "fail", "invalid_input", "error"]
273
+ },
274
+ "checkType": {
275
+ "type": "string"
276
+ },
277
+ "deflection": {
278
+ "type": "object"
279
+ },
280
+ "allowable": {
281
+ "type": "object"
282
+ },
283
+ "inputValidated": {
284
+ "type": "boolean"
285
+ },
286
+ "warnings": {
287
+ "type": "array",
288
+ "items": {
289
+ "type": "string"
290
+ }
291
+ }
292
+ }
293
+ },
294
+ "evidenceContract": {
295
+ "requiredFields": ["status", "checkType", "deflection", "allowable", "inputValidated"],
296
+ "invalidWhenMissing": ["inputValidated", "deflection", "allowable"]
297
+ },
298
+ "blockingRules": [
299
+ {
300
+ "when": "status == fail",
301
+ "severity": "P1",
302
+ "action": "hold"
303
+ },
304
+ {
305
+ "when": "status == invalid_input",
306
+ "severity": "P0",
307
+ "action": "block"
308
+ },
309
+ {
310
+ "when": "status == error",
311
+ "severity": "P1",
312
+ "action": "hold"
313
+ }
314
+ ],
315
+ "humanEscalation": ["structural_capacity_final_claim", "production_structural_design"]
316
+ },
317
+ {
318
+ "id": "solver.frame_displacement",
319
+ "type": "deterministic_solver",
320
+ "ownerAgents": ["euclid"],
321
+ "allowedSkills": ["aios-structural", "aios-arch"],
322
+ "authorityLevel": "L1",
323
+ "description": "二维平面框架位移求解接口,返回最大位移、控制节点、目标节点和内力控制摘要。",
324
+ "status": "implemented",
325
+ "inputSchema": {
326
+ "type": "object",
327
+ "properties": {
328
+ "payload": {
329
+ "type": "object"
330
+ },
331
+ "structure": {
332
+ "type": "object"
333
+ },
334
+ "targetNodeId": {
335
+ "type": "string"
336
+ }
337
+ }
338
+ },
339
+ "outputSchema": {
340
+ "type": "object",
341
+ "required": ["status", "maxDisplacement", "inputValidated"],
342
+ "properties": {
343
+ "status": {
344
+ "type": "string",
345
+ "enum": ["pass", "fail", "invalid_input", "error"]
346
+ },
347
+ "maxDisplacement": {
348
+ "type": "object"
349
+ },
350
+ "targetNode": {
351
+ "type": "object"
352
+ },
353
+ "inputValidated": {
354
+ "type": "boolean"
355
+ },
356
+ "warnings": {
357
+ "type": "array",
358
+ "items": {
359
+ "type": "string"
360
+ }
361
+ }
362
+ }
363
+ },
364
+ "evidenceContract": {
365
+ "requiredFields": ["status", "maxDisplacement", "inputValidated"],
366
+ "invalidWhenMissing": ["inputValidated", "maxDisplacement"]
367
+ },
368
+ "blockingRules": [
369
+ {
370
+ "when": "status == fail",
371
+ "severity": "P1",
372
+ "action": "hold"
373
+ },
374
+ {
375
+ "when": "status == invalid_input",
376
+ "severity": "P0",
377
+ "action": "block"
378
+ },
379
+ {
380
+ "when": "status == error",
381
+ "severity": "P1",
382
+ "action": "hold"
383
+ }
384
+ ],
385
+ "humanEscalation": ["structural_safety_final_claim", "production_structural_design"]
386
+ },
387
+ {
388
+ "id": "solver.truss_member_force",
389
+ "type": "deterministic_solver",
390
+ "ownerAgents": ["euclid"],
391
+ "allowedSkills": ["aios-structural", "aios-arch"],
392
+ "authorityLevel": "L1",
393
+ "description": "二维平面桁架杆件轴力求解接口,返回最大轴力、控制杆件和指定杆件结果。",
394
+ "status": "implemented",
395
+ "inputSchema": {
396
+ "type": "object",
397
+ "properties": {
398
+ "payload": {
399
+ "type": "object"
400
+ },
401
+ "structure": {
402
+ "type": "object"
403
+ },
404
+ "targetMemberId": {
405
+ "type": "string"
406
+ }
407
+ }
408
+ },
409
+ "outputSchema": {
410
+ "type": "object",
411
+ "required": ["status", "maxAxialForce", "inputValidated"],
412
+ "properties": {
413
+ "status": {
414
+ "type": "string",
415
+ "enum": ["pass", "fail", "invalid_input", "error"]
416
+ },
417
+ "maxAxialForce": {
418
+ "type": "object"
419
+ },
420
+ "targetMember": {
421
+ "type": "object"
422
+ },
423
+ "inputValidated": {
424
+ "type": "boolean"
425
+ },
426
+ "warnings": {
427
+ "type": "array",
428
+ "items": {
429
+ "type": "string"
430
+ }
431
+ }
432
+ }
433
+ },
434
+ "evidenceContract": {
435
+ "requiredFields": ["status", "maxAxialForce", "inputValidated"],
436
+ "invalidWhenMissing": ["inputValidated", "maxAxialForce"]
437
+ },
438
+ "blockingRules": [
439
+ {
440
+ "when": "status == fail",
441
+ "severity": "P1",
442
+ "action": "hold"
443
+ },
444
+ {
445
+ "when": "status == invalid_input",
446
+ "severity": "P0",
447
+ "action": "block"
448
+ },
449
+ {
450
+ "when": "status == error",
451
+ "severity": "P1",
452
+ "action": "hold"
453
+ }
454
+ ],
455
+ "humanEscalation": ["structural_safety_final_claim", "production_structural_design"]
456
+ }
457
+ ]
458
+ }
@@ -0,0 +1,135 @@
1
+ {
2
+ "$schema": "https://json-schema.org/draft/2020-12/schema",
3
+ "$id": "https://archsightlabs.github.io/aios/schemas/capability-registry.schema.json",
4
+ "title": "ArchSight AIOS Capability Registry",
5
+ "type": "object",
6
+ "required": ["schema", "capabilities"],
7
+ "additionalProperties": false,
8
+ "properties": {
9
+ "schema": {
10
+ "type": "integer",
11
+ "const": 1
12
+ },
13
+ "description": {
14
+ "type": "string"
15
+ },
16
+ "capabilities": {
17
+ "type": "array",
18
+ "minItems": 1,
19
+ "items": {
20
+ "type": "object",
21
+ "required": [
22
+ "id",
23
+ "type",
24
+ "ownerAgents",
25
+ "authorityLevel",
26
+ "description",
27
+ "status",
28
+ "inputSchema",
29
+ "outputSchema",
30
+ "evidenceContract",
31
+ "blockingRules"
32
+ ],
33
+ "additionalProperties": false,
34
+ "properties": {
35
+ "id": {
36
+ "type": "string",
37
+ "pattern": "^[a-z][a-z0-9_]*(\\.[a-z][a-z0-9_]*)+$"
38
+ },
39
+ "type": {
40
+ "type": "string",
41
+ "enum": [
42
+ "verification",
43
+ "deterministic_solver",
44
+ "compliance_lookup",
45
+ "security_scanner",
46
+ "repository_fact",
47
+ "runtime_adapter"
48
+ ]
49
+ },
50
+ "ownerAgents": {
51
+ "type": "array",
52
+ "minItems": 1,
53
+ "items": {
54
+ "type": "string"
55
+ },
56
+ "uniqueItems": true
57
+ },
58
+ "allowedSkills": {
59
+ "type": "array",
60
+ "items": {
61
+ "type": "string"
62
+ },
63
+ "uniqueItems": true
64
+ },
65
+ "authorityLevel": {
66
+ "type": "string",
67
+ "enum": ["L1", "L2", "L3"]
68
+ },
69
+ "description": {
70
+ "type": "string"
71
+ },
72
+ "status": {
73
+ "type": "string",
74
+ "enum": ["declared-interface", "adapter-required", "implemented"]
75
+ },
76
+ "inputSchema": {
77
+ "type": "object"
78
+ },
79
+ "outputSchema": {
80
+ "type": "object"
81
+ },
82
+ "evidenceContract": {
83
+ "type": "object",
84
+ "required": ["requiredFields", "invalidWhenMissing"],
85
+ "additionalProperties": false,
86
+ "properties": {
87
+ "requiredFields": {
88
+ "type": "array",
89
+ "items": {
90
+ "type": "string"
91
+ },
92
+ "uniqueItems": true
93
+ },
94
+ "invalidWhenMissing": {
95
+ "type": "array",
96
+ "items": {
97
+ "type": "string"
98
+ },
99
+ "uniqueItems": true
100
+ }
101
+ }
102
+ },
103
+ "blockingRules": {
104
+ "type": "array",
105
+ "items": {
106
+ "type": "object",
107
+ "required": ["when", "severity", "action"],
108
+ "additionalProperties": false,
109
+ "properties": {
110
+ "when": {
111
+ "type": "string"
112
+ },
113
+ "severity": {
114
+ "type": "string",
115
+ "enum": ["P0", "P1", "P2"]
116
+ },
117
+ "action": {
118
+ "type": "string",
119
+ "enum": ["block", "hold", "revise", "human_escalation"]
120
+ }
121
+ }
122
+ }
123
+ },
124
+ "humanEscalation": {
125
+ "type": "array",
126
+ "items": {
127
+ "type": "string"
128
+ },
129
+ "uniqueItems": true
130
+ }
131
+ }
132
+ }
133
+ }
134
+ }
135
+ }
@@ -21,12 +21,13 @@
21
21
  | 建筑行业平台界面方案、工作台体验、复核追溯和前端实现交接 | `aios-design` | Janus | `design-review` |
22
22
  | 建筑行业项目中的架构评审、技术选型、服务边界 | `aios-arch` | Atlas | `architecture-review` |
23
23
  | 建筑行业项目中的 Feature 拆解、交付计划、任务依赖 | `aios-plan` | Mason | `feature-development` |
24
- | 建筑行业项目中的 PR / diff / AI 生成代码审查 | `aios-review` | Argus | `code-review` |
25
- | 建筑行业项目中的 Bug 修复、测试失败、构建失败 | `aios-exec` | Hephaestus | `bug-fixing` |
26
- | BIM / IFC / 建筑规范 / 审图规则 | `aios-knowledge` | Vitruvius | `rag-pipeline` |
27
- | 建筑行业项目中的 Prompt / Context / Memory / MCP / Tool | `aios-runtime` | Daedalus | `architecture-review` |
28
- | 建筑行业知识库 / 工程知识 RAG / GraphRAG Pipeline | `aios-runtime` | Daedalus | `rag-pipeline` |
29
- | 建筑行业项目中的受控代码修改、文档、脚本、测试 | `aios-exec` | Hephaestus | `feature-development` |
24
+ | 建筑行业项目中的 PR / diff / AI 生成代码审查 | `aios-review` | Argus | `code-review` |
25
+ | 建筑行业项目中的 Bug 修复、测试失败、构建失败 | `aios-exec` | Hephaestus | `bug-fixing` |
26
+ | BIM / IFC / 建筑规范 / 审图规则 | `aios-knowledge` | Vitruvius | `rag-pipeline` |
27
+ | 结构力学 / 荷载 / FEM / 确定性求解链路 | `aios-structural` | Euclid | `architecture-review` |
28
+ | 建筑行业项目中的 Prompt / Context / Memory / MCP / Tool | `aios-runtime` | Daedalus | `architecture-review` |
29
+ | 建筑行业知识库 / 工程知识 RAG / GraphRAG Pipeline | `aios-runtime` | Daedalus | `rag-pipeline` |
30
+ | 建筑行业项目中的受控代码修改、文档、脚本、测试 | `aios-exec` | Hephaestus | `feature-development` |
30
31
 
31
32
  ## 路由原则
32
33
 
@@ -37,10 +38,12 @@
37
38
  - 是否启用行业增强,先看项目 profile、`.ai/project-context.md`、README 和当前任务;不确定时先核验上下文,不凭 Skill 名称硬套。
38
39
  - `aios-ceo` 用于一把手视角的建筑行业软件 / 系统深度评价,把产品定位、行业专业性、工程可信度、证据链、商业验证和范围取舍放到同一决策框架里;它可以引用架构和行业语义事实作为 CEO 判断依据,但不替代 `aios-arch` 或 `aios-knowledge` 的专项设计与专业结论。
39
40
  - `aios-design` 用于实现前判断界面方案是否支撑建筑行业审查、定位、复核、追溯和交付;不替代 `frontend-generation` 的 UI 实现、布局验证和交互验证,也不替代通用 `frontend-design` 的视觉风格和前端代码美化评审。
40
- - `aios-arch` 应补足通用架构评审缺失的建筑行业平台视角,包括 BIM / IFC、规范知识链路、审图证据链、RAG / GraphRAG、任务编排、审计和后端运行可靠性。
41
- - Agent 可以调用多个 Skill;Skill 也可以被多个 Agent 复用。
42
- - 项目工作目录中的事实优先于 AIOS 的通用模板。
43
- - Hermes / 飞书只是可选入口和调度适配器,不替代本地验证,也不是 AIOS 的必要前提。
41
+ - `aios-arch` 应补足通用架构评审缺失的建筑行业平台视角,包括 BIM / IFC、规范知识链路、审图证据链、RAG / GraphRAG、任务编排、审计和后端运行可靠性。
42
+ - `aios-structural` 用于结构力学、荷载、边界条件、FEM 和求解器接口评审;它不能替代结构工程师签审,关键数值必须来自 Capability 或项目已有求解器证据。
43
+ - Agent 可以调用多个 Skill;Skill 也可以被多个 Agent 复用。
44
+ - 项目工作目录中的事实优先于 AIOS 的通用模板。
45
+ - Hermes / 飞书只是可选入口和调度适配器,不替代本地验证,也不是 AIOS 的必要前提。
46
+ - 多 Agent 冲突时,按 `governance/arbitration-protocol.md` 仲裁;Capability 返回值、项目事实和结构化知识优先于 Agent 自然语言判断。
44
47
 
45
48
  ## 升级规则
46
49
 
@@ -49,9 +52,10 @@
49
52
  - 涉及页面方案、工作台体验、证据定位、复核追溯、交互状态和前端实现交接:升级给 Janus,并使用 `aios-design`。
50
53
  - 涉及任务依赖、交付顺序、CI/CD:升级给 Mason。
51
54
  - 涉及安全、权限、Prompt 注入、生产发布:升级给 Argus。
52
- - 涉及 BIM、IFC、规范条文和审图语义:升级给 Vitruvius。
53
- - 涉及 RAG、GraphRAG、MCP、Tool Calling、Memory:升级给 Daedalus。
54
- - 涉及具体代码、脚本、测试、文档执行:交给 Hephaestus
55
+ - 涉及 BIM、IFC、规范条文和审图语义:升级给 Vitruvius。
56
+ - 涉及结构力学、荷载、边界条件、FEM 或结构计算工具链:升级给 Euclid,并优先使用 `aios-structural`。
57
+ - 涉及 RAG、GraphRAG、MCP、Tool Calling、Memory:升级给 Daedalus
58
+ - 涉及具体代码、脚本、测试、文档执行:交给 Hephaestus。
55
59
 
56
60
  ## 项目接入
57
61