@pm_zhousl/xinyun-ai-init 1.4.0 → 1.5.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/init/xinyun-ai-init/README.md +146 -6
- package/init/xinyun-ai-init/rules/directory-self-completion.md +4 -0
- package/init/xinyun-ai-init/rules/init-rules.md +4 -0
- package/init/xinyun-ai-init/rules/session-workbench.md +47 -0
- package/init/xinyun-ai-init/rules/upgrade-rules.md +6 -0
- package/init/xinyun-ai-init/templates/AGENTS.template.md +19 -1
- package/init/xinyun-ai-init/templates/core-rules.template.md +113 -1
- package/init/xinyun-ai-init/templates/current-task.template.md +34 -0
- package/init/xinyun-ai-init/templates/manifest.template.json +13 -2
- package/init/xinyun-ai-init/templates/project-check.template.md +10 -0
- package/init/xinyun-ai-init/templates/project-guide.template.md +17 -0
- package/init/xinyun-ai-init/templates/project-index.template.json +18 -0
- package/init/xinyun-ai-init/templates/team/README.md +40 -0
- package/init/xinyun-ai-init/templates/team/assignments.json +33 -0
- package/init/xinyun-ai-init/templates/team/confirmations/chief-engineer.md +24 -0
- package/init/xinyun-ai-init/templates/team/confirmations/programmer.md +24 -0
- package/init/xinyun-ai-init/templates/team/confirmations/project-owner.md +24 -0
- package/init/xinyun-ai-init/templates/team/confirmations/project-product.md +24 -0
- package/init/xinyun-ai-init/templates/team/confirmations/test-reviewer.md +24 -0
- package/init/xinyun-ai-init/templates/team/file-ownership.json +32 -0
- package/init/xinyun-ai-init/templates/team/members.json +61 -0
- package/init/xinyun-ai-init/templates/team/responsibility-matrix.json +81 -0
- package/init/xinyun-ai-init/templates/team/roles.json +71 -0
- package/init/xinyun-ai-init/templates/team/understandings/chief-engineer.md +23 -0
- package/init/xinyun-ai-init/templates/team/understandings/programmer.md +23 -0
- package/init/xinyun-ai-init/templates/team/understandings/project-owner.md +23 -0
- package/init/xinyun-ai-init/templates/team/understandings/project-product.md +23 -0
- package/init/xinyun-ai-init/templates/team/understandings/test-reviewer.md +23 -0
- package/init/xinyun-ai-init/version.json +1 -1
- package/package.json +1 -1
- package/scripts/verify-init-package.js +273 -8
- package/test-scenarios/README.md +3 -3
- package/test-scenarios/review-template.md +15 -2
- package/test-scenarios/scenarios.md +171 -4
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
|
|
3
3
|
本目录是“欣芸技术开发 Agent 流”的初始化包,负责把完整 AI 执行要求下发到目标项目。
|
|
4
4
|
|
|
5
|
-
当前规则版本:`1.
|
|
5
|
+
当前规则版本:`1.5.0`。
|
|
6
6
|
|
|
7
7
|
## Codex 一句话入口
|
|
8
8
|
|
|
@@ -26,7 +26,7 @@ AI 读取本文件后,必须按以下方式执行:
|
|
|
26
26
|
|
|
27
27
|
1. 如果当前项目没有 `xinyun-ai/`,进入极速初始化模式。
|
|
28
28
|
2. 如果当前项目已有 `xinyun-ai/`,进入升级检查模式。
|
|
29
|
-
3. 用户发送 Codex 一句话入口后,视为已授权 AI 按本初始化包创建或补齐最小 `xinyun-ai/` 与极简 `AGENTS.md`。
|
|
29
|
+
3. 用户发送 Codex 一句话入口后,视为已授权 AI 按本初始化包创建或补齐最小 `xinyun-ai/`、`xinyun-ai/team/` 与极简 `AGENTS.md`。
|
|
30
30
|
4. 代码整改前必须先输出改动计划,等待用户明确确认后才能执行。
|
|
31
31
|
5. 涉及 SQL / 数据库改动时,必须单独输出 SQL 执行提醒。
|
|
32
32
|
6. 非项目开发内容不要沉淀。
|
|
@@ -38,8 +38,9 @@ AI 读取本文件后,必须按以下方式执行:
|
|
|
38
38
|
12. 识别 ThinkPHP、uni-app、微信小程序时必须输出证据路径、证据类型、识别状态和覆盖范围,遵守读取预算。
|
|
39
39
|
13. 多仓库 Git 只做只读索引与端口映射,不执行任何 Git 写操作。
|
|
40
40
|
14. 字段新增、删除、重命名、类型 / 含义变化、API 映射或前端展示变化时,先做有边界的字段影响审视。
|
|
41
|
-
15.
|
|
42
|
-
16.
|
|
41
|
+
15. 初始化时创建 AI 项目团队责任闭环:5 个逻辑角色、5 个 JSON 配置、5 份职责确认记录和 5 份角色理解记录。
|
|
42
|
+
16. 首次初始化不执行语言级语法检查、lint、typecheck、测试或构建命令;本机缺少运行时只记录为待确认,不展开长解释。
|
|
43
|
+
17. 完成后用中文输出初始化或升级结果、项目导读、团队责任状态、待确认问题和后续短指令。
|
|
43
44
|
|
|
44
45
|
## 初始化授权边界
|
|
45
46
|
|
|
@@ -47,8 +48,12 @@ CLI 只负责生成 `xinyun-ai-init/`,不创建 `xinyun-ai/`,也不修改业
|
|
|
47
48
|
|
|
48
49
|
用户发送一句话入口后,AI 可以按本 README 和 `templates/` 创建或补齐首次最小落盘清单。
|
|
49
50
|
|
|
51
|
+
v1.5.0 起,首次最小 AI 工作区授权包含 `xinyun-ai/team/` 团队责任闭环控制文件:5 个逻辑角色、5 个 JSON 配置、5 份 `confirmations/<roleId>.md` 和 5 份 `understandings/<roleId>.md`。
|
|
52
|
+
|
|
50
53
|
该授权只覆盖 AI 工作区初始化,不代表授权修改业务代码、配置、数据库、依赖、构建脚本、测试逻辑、API 行为、UI 行为或业务流程。
|
|
51
54
|
|
|
55
|
+
团队角色是本地逻辑配置,不自动创建外部人员账号、外部 AI 会话或无限会话;未知人员、会话和确认人使用 `null`,不得虚构。
|
|
56
|
+
|
|
52
57
|
## 改动计划与执行确认
|
|
53
58
|
|
|
54
59
|
用户提出“帮我改”“修复”“处理一下”“优化一下”只代表提出需求,不代表授权执行。
|
|
@@ -344,6 +349,22 @@ xinyun-ai/project/项目导读.md
|
|
|
344
349
|
xinyun-ai/project/项目完整性检查.md
|
|
345
350
|
xinyun-ai/workstreams/README.md
|
|
346
351
|
xinyun-ai/index/project-index.json
|
|
352
|
+
xinyun-ai/team/README.md
|
|
353
|
+
xinyun-ai/team/roles.json
|
|
354
|
+
xinyun-ai/team/members.json
|
|
355
|
+
xinyun-ai/team/assignments.json
|
|
356
|
+
xinyun-ai/team/responsibility-matrix.json
|
|
357
|
+
xinyun-ai/team/file-ownership.json
|
|
358
|
+
xinyun-ai/team/understandings/project-owner.md
|
|
359
|
+
xinyun-ai/team/understandings/project-product.md
|
|
360
|
+
xinyun-ai/team/understandings/chief-engineer.md
|
|
361
|
+
xinyun-ai/team/understandings/programmer.md
|
|
362
|
+
xinyun-ai/team/understandings/test-reviewer.md
|
|
363
|
+
xinyun-ai/team/confirmations/project-owner.md
|
|
364
|
+
xinyun-ai/team/confirmations/project-product.md
|
|
365
|
+
xinyun-ai/team/confirmations/chief-engineer.md
|
|
366
|
+
xinyun-ai/team/confirmations/programmer.md
|
|
367
|
+
xinyun-ai/team/confirmations/test-reviewer.md
|
|
347
368
|
```
|
|
348
369
|
|
|
349
370
|
首次不要创建大量规则、模板、脚本和业务沉淀目录。后续根据任务按需补齐。
|
|
@@ -481,6 +502,124 @@ xinyun-ai/global-review/
|
|
|
481
502
|
- 验证层
|
|
482
503
|
- 交接层
|
|
483
504
|
|
|
505
|
+
## AI 项目团队与责任闭环
|
|
506
|
+
|
|
507
|
+
初始化时必须创建 `xinyun-ai/team/`,用于记录本地 AI 协作团队、职责确认、角色理解、任务责任和文件目录责任。
|
|
508
|
+
|
|
509
|
+
默认逻辑角色:
|
|
510
|
+
|
|
511
|
+
- `project-owner`:项目负责人,负责需求最终确认、业务验收和发布授权。
|
|
512
|
+
- `project-product`:项目产品,负责需求整理、任务拆分和产品验收建议。
|
|
513
|
+
- `chief-engineer`:总工 / 技术负责人,负责技术方案、架构风险和技术最终确认。
|
|
514
|
+
- `programmer`:程序员,按确认范围执行代码、配置和测试任务。
|
|
515
|
+
- `test-reviewer`:测试审查员,独立测试、发布阻断判断和测试结论,不修改代码。
|
|
516
|
+
|
|
517
|
+
首次必须创建:
|
|
518
|
+
|
|
519
|
+
```text
|
|
520
|
+
xinyun-ai/team/
|
|
521
|
+
README.md
|
|
522
|
+
roles.json
|
|
523
|
+
members.json
|
|
524
|
+
assignments.json
|
|
525
|
+
responsibility-matrix.json
|
|
526
|
+
file-ownership.json
|
|
527
|
+
understandings/<roleId>.md
|
|
528
|
+
confirmations/<roleId>.md
|
|
529
|
+
```
|
|
530
|
+
|
|
531
|
+
`roles.json`、`members.json`、`assignments.json`、`responsibility-matrix.json`、`file-ownership.json` 必须是有效 JSON。5 个逻辑角色各有一份 `confirmations/<roleId>.md` 和一份 `understandings/<roleId>.md`;`roleId` 必须来自 `roles.json`,不得用显示名称代替。
|
|
532
|
+
|
|
533
|
+
团队入口注册:
|
|
534
|
+
|
|
535
|
+
- `xinyun-ai/manifest.json` 必须包含 `capabilities.teamResponsibilityClosure: true`。
|
|
536
|
+
- `xinyun-ai/manifest.json` 必须登记 `team.directory`、`roles`、`members`、`assignments`、`responsibilityMatrix`、`fileOwnership`、`understandingsDirectory`、`confirmationsDirectory` 这 8 个相对路径。
|
|
537
|
+
- `xinyun-ai/index/project-index.json` 必须登记 `team.enabled`、`directory`、`roleCount=5`、`confirmationCount=5`、`status=pending-confirmation` 和同名 `paths`。
|
|
538
|
+
- 注册路径必须与实际文件系统路径逐项一致。
|
|
539
|
+
|
|
540
|
+
未知绑定规则:
|
|
541
|
+
|
|
542
|
+
- 默认只创建逻辑角色和待绑定成员槽位,不虚构真实人员。
|
|
543
|
+
- 未绑定真实人员或会话时,`personId`、`sessionId`、职责确认记录中的 `memberId`、`confirmedBy` 和 `confirmedAt` 使用 `null`。
|
|
544
|
+
- `confirmations/<roleId>.md` 和 `understandings/<roleId>.md` 的 `createdAt`、`updatedAt` 必须存在且为 ISO 8601 时间;首次落盘可使用模板初始时间或替换为当前时间,但不得留空。
|
|
545
|
+
- 不因为角色数量增加而自动创建多个会话或外部账号。
|
|
546
|
+
|
|
547
|
+
状态分层:
|
|
548
|
+
|
|
549
|
+
- 角色生命周期:`unassigned`、`assigned`、`onboarding`、`ready`、`blocked`、`disabled`。
|
|
550
|
+
- 职责确认状态:`pending`、`confirmed`、`adjustment-required`。
|
|
551
|
+
- 任务分配状态:`pending`、`assigned`、`accepted`、`executing`、`paused`、`blocked`、`completed`、`cancelled`。
|
|
552
|
+
- `status=paused` 时必须填写 `pauseReason`,允许值至少包括 `out-of-scope`、`awaiting-confirmation`、`execution-failed`、`user-requested`;其他状态的 `pauseReason` 必须为 `null`。
|
|
553
|
+
- 确认人不可用或发生成员冲突时使用 `status=blocked`,并填写 `blockedReason=approver-unavailable` 或 `member-conflict`。
|
|
554
|
+
|
|
555
|
+
可执行前置条件:
|
|
556
|
+
|
|
557
|
+
- 成员已绑定。
|
|
558
|
+
- 角色生命周期为 `ready`。
|
|
559
|
+
- 职责确认状态为 `confirmed`。
|
|
560
|
+
- 角色理解记录为 `ready`。
|
|
561
|
+
- 任务执行人和确认人不冲突。
|
|
562
|
+
|
|
563
|
+
成员级确认冲突:
|
|
564
|
+
|
|
565
|
+
- 执行人不得直接作为自己的最终确认人。
|
|
566
|
+
- 最终确认关系必须在任务分配记录中落到成员 ID。
|
|
567
|
+
- `memberId` 不得等于 `technicalApproverMemberId`、`businessApproverMemberId` 或 `publishAuthorizerMemberId`。
|
|
568
|
+
- `roles.json` 中的默认确认角色只用于候选人推荐,不构成授权,也不能覆盖成员级冲突校验。
|
|
569
|
+
- 总工为执行人时不得回落为自己确认自己。
|
|
570
|
+
- 没有可用技术、业务或发布确认成员时,任务保持 `blocked` / 待分配,不得自动使用执行成员、虚构成员或空确认通过。
|
|
571
|
+
- 程序员不得担任技术最终确认人、业务最终确认人或发布授权人;本版本不设置例外。
|
|
572
|
+
|
|
573
|
+
角色理解记录:
|
|
574
|
+
|
|
575
|
+
- 每个角色按照自己的职责读取项目内容,生成独立理解记录。
|
|
576
|
+
- 理解记录必须包含 `recordId`、`roleId`、`memberId`、`status`、`readScope`、`readBudget`、`unreadablePaths`、`confirmedFacts`、`inferences`、`pendingQuestions`、`risks`、`evidence`、`coverage`、`executionEligible`、`createdAt`、`updatedAt`。
|
|
577
|
+
- 理解记录状态:`pending`、`reading`、`ready`、`partial`、`blocked`。
|
|
578
|
+
- 角色理解不等于代码修改授权;即使 `executionEligible=true`,仍必须有已确认任务单。
|
|
579
|
+
- 不要求所有角色初始化时全量扫描业务代码。
|
|
580
|
+
|
|
581
|
+
任务责任字段:
|
|
582
|
+
|
|
583
|
+
```md
|
|
584
|
+
- 需求负责人:
|
|
585
|
+
- 技术负责人 / 总工:
|
|
586
|
+
- 执行人:
|
|
587
|
+
- 测试审查人:
|
|
588
|
+
- 技术最终确认人:
|
|
589
|
+
- 业务最终确认人:
|
|
590
|
+
- 发布授权人:
|
|
591
|
+
```
|
|
592
|
+
|
|
593
|
+
文件目录责任和变更核对:
|
|
594
|
+
|
|
595
|
+
```md
|
|
596
|
+
## 预计更新文件目录
|
|
597
|
+
- 文件或目录:
|
|
598
|
+
- 文件类型:
|
|
599
|
+
- 负责角色:
|
|
600
|
+
- 执行角色:
|
|
601
|
+
- 审查角色:
|
|
602
|
+
- 最终确认角色:
|
|
603
|
+
|
|
604
|
+
## 实际更新文件目录
|
|
605
|
+
- 已修改:
|
|
606
|
+
- 新增:
|
|
607
|
+
- 删除:
|
|
608
|
+
- 未修改:
|
|
609
|
+
- 超出预计范围:
|
|
610
|
+
- 是否需要重新确认:
|
|
611
|
+
```
|
|
612
|
+
|
|
613
|
+
- 目录记录以相对 `repoRoot` 的正斜线路径为准,跨仓库必须分别记录。
|
|
614
|
+
- 文件、目录、通配符分别通过 `pathType` 标注;`pathType` 只能是 `file`、`directory` 或 `glob`。
|
|
615
|
+
- 路径不得包含 `..`。
|
|
616
|
+
- 删除和重命名必须记录旧路径,重命名还必须记录新路径。
|
|
617
|
+
- 生成文件必须列出实际输出路径,不得只写“生成相关文件”。
|
|
618
|
+
- `xinyun-ai/team/**`、`xinyun-ai/current-task.md`、`xinyun-ai/index/session-current.md`、`xinyun-ai/handoffs/**` 属于控制文件,计入实际更新记录,但与业务代码修改分栏统计。
|
|
619
|
+
- 实际目录通过文件清单和 diff 只读核对。
|
|
620
|
+
- 发现未授权路径后,任务状态改为 `paused`、`pauseReason=out-of-scope`,记录责任人、发现人、影响范围和重新确认人。
|
|
621
|
+
- 不得使用未定义状态 `paused-out-of-scope`。
|
|
622
|
+
|
|
484
623
|
## 双会话执行闭环(MVP)
|
|
485
624
|
|
|
486
625
|
复杂改动可使用一个主会话 + 一个执行会话的手工协作闭环。普通咨询、只读分析和不涉及文件修改的任务仍可使用单会话。
|
|
@@ -634,8 +773,9 @@ npx --yes @pm_zhousl/xinyun-ai-init@latest --force
|
|
|
634
773
|
6. 数据库、API、测试体系发现情况。
|
|
635
774
|
7. CodeGraph 与索引状态。
|
|
636
775
|
8. Git 模式、涉及仓库、当前分支和工作区状态。
|
|
637
|
-
9.
|
|
638
|
-
10.
|
|
776
|
+
9. AI 项目团队状态:团队目录、5 个角色、5 个职责确认记录、5 个角色理解记录、manifest / project-index 路径注册。
|
|
777
|
+
10. 待确认问题。
|
|
778
|
+
11. 后续日常开发和问题排查短指令。
|
|
639
779
|
|
|
640
780
|
交付输出要求:
|
|
641
781
|
|
|
@@ -16,3 +16,7 @@
|
|
|
16
16
|
- 识别到端口框架线索时,可按需补齐 `workstreams/<端>/`,记录 ThinkPHP / uni-app / 微信小程序识别证据、证据类型、发现预算、覆盖范围、`未在项目中发现` 或 `状态未知`。
|
|
17
17
|
- 识别到多仓库 Git 结构时,可按需补齐端口 Git 只读索引,记录 `repoRoot`、`path`、`workstream`、`kind`、`parentRepo`、`branch`、`remote`、`status`、`evidence`,不得执行 Git 写操作。
|
|
18
18
|
- 触发字段影响审视时,可按需补齐字段审视记录,记录字段分类、检索根目录、排除项、CodeGraph 状态、证据、可能遗漏位置、兼容方案和确认状态。
|
|
19
|
+
- 首次初始化必须补齐 `xinyun-ai/team/`;升级时发现团队能力缺失,可按方案补齐团队控制文件。
|
|
20
|
+
- 团队目录补齐后必须同步 `manifest.json` 和 `index/project-index.json` 的 team 路径注册。
|
|
21
|
+
- `xinyun-ai/team/**` 属于控制文件,计入实际更新记录,但与业务代码修改分栏统计。
|
|
22
|
+
- 超出预计目录时必须设置 `status=paused`、`pauseReason=out-of-scope`,不得使用 `paused-out-of-scope`。
|
|
@@ -18,3 +18,7 @@
|
|
|
18
18
|
- ThinkPHP、uni-app、微信小程序轻量识别每个端口最多发现 3 层目录、读取 20 个关键文件,必须记录证据路径、证据类型、识别状态和覆盖范围。
|
|
19
19
|
- 多仓库 Git 只读索引最多发现 4 层目录、20 个仓库候选和 200 个目录 / 文件条目,只读取状态与证据,不执行 Git 写操作。
|
|
20
20
|
- 字段新增、删除、重命名、类型 / 含义变化、API 映射或前端展示变化时,先做字段影响审视;未确认前不得执行 SQL、migration、seed、批量数据修复或接口兼容改动。
|
|
21
|
+
- 首次初始化必须创建 `xinyun-ai/team/`,包含 5 个逻辑角色、5 个 JSON 配置、5 份 `confirmations/<roleId>.md` 和 5 份 `understandings/<roleId>.md`。
|
|
22
|
+
- `manifest.json` 必须登记 `capabilities.teamResponsibilityClosure: true` 和 team 的 8 个路径;`project-index.json` 必须登记 `roleCount=5`、`confirmationCount=5`、`status=pending-confirmation`。
|
|
23
|
+
- 团队成员未绑定时使用 `null`,不得虚构真实人员、会话 ID 或确认人。
|
|
24
|
+
- 普通咨询不强制创建完整团队任务链。
|
|
@@ -28,6 +28,14 @@ xinyun-ai/index/session-current.md
|
|
|
28
28
|
|
|
29
29
|
多仓库 Git 任务单还必须记录只读仓库索引:`repoRoot`、`path`、`workstream`、`kind`、`parentRepo`、`branch`、`remote`、`status`、`evidence`,以及是否存在 `状态未知` 或 `未在项目中发现`。
|
|
30
30
|
|
|
31
|
+
团队责任任务单还必须记录需求负责人、技术负责人 / 总工、执行人、测试审查人、技术最终确认人、业务最终确认人、发布授权人,以及对应成员 ID:`memberId`、`reviewerMemberId`、`technicalApproverMemberId`、`businessApproverMemberId`、`publishAuthorizerMemberId`。
|
|
32
|
+
|
|
33
|
+
执行人不得作为自己的最终确认人,必须按 `memberId` 判断冲突;当 `memberId` 等于 `technicalApproverMemberId`、`businessApproverMemberId` 或 `publishAuthorizerMemberId` 时,任务必须 `status=blocked`,`blockedReason=member-conflict`。
|
|
34
|
+
|
|
35
|
+
确认人不可用时,任务必须 `status=blocked`,`blockedReason=approver-unavailable`。不得自动使用执行成员、虚构成员或空确认通过。
|
|
36
|
+
|
|
37
|
+
任务开始前必须记录预计更新文件目录;任务完成后必须记录实际更新文件目录。发现实际修改超出预计目录时,任务必须 `status=paused`,`pauseReason=out-of-scope`,不得使用 `paused-out-of-scope`。
|
|
38
|
+
|
|
31
39
|
状态机至少包含:待确认、待执行、执行中、暂停待复核、待主会话复核、已完成、失败、中断、超时、阻塞、取消、需重新确认。
|
|
32
40
|
|
|
33
41
|
失败、中断、超时后不得自动重试。重试必须由主会话重新确认并增加 `attempt`,不能覆盖历史交接结果。
|
|
@@ -56,6 +64,33 @@ xinyun-ai/index/session-current.md
|
|
|
56
64
|
|
|
57
65
|
## 数据库 / API / UI / 配置影响
|
|
58
66
|
|
|
67
|
+
## 团队责任与审批关系
|
|
68
|
+
|
|
69
|
+
- 需求负责人:
|
|
70
|
+
- 技术负责人 / 总工:
|
|
71
|
+
- 执行人:
|
|
72
|
+
- 测试审查人:
|
|
73
|
+
- 技术最终确认人:
|
|
74
|
+
- 业务最终确认人:
|
|
75
|
+
- 发布授权人:
|
|
76
|
+
- memberId:
|
|
77
|
+
- reviewerMemberId:
|
|
78
|
+
- technicalApproverMemberId:
|
|
79
|
+
- businessApproverMemberId:
|
|
80
|
+
- publishAuthorizerMemberId:
|
|
81
|
+
- blockedReason:
|
|
82
|
+
- pauseReason:
|
|
83
|
+
- memberId 冲突检查:
|
|
84
|
+
|
|
85
|
+
## 预计更新文件目录
|
|
86
|
+
|
|
87
|
+
- 文件或目录:
|
|
88
|
+
- 文件类型:
|
|
89
|
+
- 负责角色:
|
|
90
|
+
- 执行角色:
|
|
91
|
+
- 审查角色:
|
|
92
|
+
- 最终确认角色:
|
|
93
|
+
|
|
59
94
|
## 字段影响审视
|
|
60
95
|
|
|
61
96
|
- 字段分类:
|
|
@@ -116,4 +151,16 @@ xinyun-ai/index/session-current.md
|
|
|
116
151
|
- 可能遗漏位置:
|
|
117
152
|
- 兼容方案变化:
|
|
118
153
|
- 是否触发重新确认:
|
|
154
|
+
|
|
155
|
+
## 实际更新文件目录
|
|
156
|
+
|
|
157
|
+
- 已修改:
|
|
158
|
+
- 新增:
|
|
159
|
+
- 删除:
|
|
160
|
+
- 未修改:
|
|
161
|
+
- 超出预计范围:
|
|
162
|
+
- 是否需要重新确认:
|
|
163
|
+
- 控制文件:
|
|
164
|
+
- 业务代码:
|
|
165
|
+
- out-of-scope 处理:
|
|
119
166
|
```
|
|
@@ -28,8 +28,14 @@
|
|
|
28
28
|
- 是否需要补充框架识别证据路径、证据类型、发现预算、`状态未知` 和 `未在项目中发现` 语义。
|
|
29
29
|
- 是否需要补充多仓库 Git 只读索引字段:`repoRoot`、`path`、`workstream`、`kind`、`parentRepo`、`branch`、`remote`、`status`、`evidence`。
|
|
30
30
|
- 是否需要补充字段影响审视、字段任务分型和字段专项路由规则。
|
|
31
|
+
- 是否需要补充 `xinyun-ai/team/` 团队责任闭环。
|
|
32
|
+
- 是否需要补充 `capabilities.teamResponsibilityClosure: true` 和 team 的 8 个路径注册。
|
|
33
|
+
- 是否需要补充 5 个逻辑角色、5 个 JSON 配置、5 份职责确认记录和 5 份角色理解记录。
|
|
34
|
+
- 是否需要补充成员级自确认阻断、确认人缺失 `blocked`、超范围 `paused` + `pauseReason=out-of-scope` 规则。
|
|
31
35
|
- 当前 `xinyun-ai/manifest.json` 的版本是否低于初始化包版本。
|
|
32
36
|
|
|
33
37
|
涉及正式规则、目录结构、索引结构或旧规则合并时,必须先确认。
|
|
34
38
|
|
|
35
39
|
升级不自动迁移全部旧 AI 文档,不会自动覆盖现有正式规则,也不会因为补充全局审视规则而在首次极速初始化阶段强制创建全局审视目录。
|
|
40
|
+
|
|
41
|
+
升级补齐团队能力时,只允许更新 `xinyun-ai/` 内控制文件;不得修改业务代码、数据库、API、依赖、构建脚本或执行发布操作。已有团队配置不得被无确认覆盖,缺失项按方案等待用户确认后补齐。
|
|
@@ -32,7 +32,7 @@
|
|
|
32
32
|
|
|
33
33
|
只有用户明确回复“确认执行”“可以修改”“按方案改”“同意”等类似内容后,才允许在确认范围内执行。
|
|
34
34
|
|
|
35
|
-
说明:用户发送 `xinyun-ai-init` 一句话入口后,视为已授权 AI 创建或补齐最小 `xinyun-ai/` 与本入口文件;该授权不包含业务代码、配置、数据库、API、UI 或业务流程修改。
|
|
35
|
+
说明:用户发送 `xinyun-ai-init` 一句话入口后,视为已授权 AI 创建或补齐最小 `xinyun-ai/`、`xinyun-ai/team/` 与本入口文件;该授权不包含业务代码、配置、数据库、API、UI 或业务流程修改。
|
|
36
36
|
|
|
37
37
|
执行过程中发现新增影响范围、计划外文件、计划外数据库 / API / UI / 配置影响、计划外高风险操作或验收标准变化时,必须暂停并重新确认。
|
|
38
38
|
|
|
@@ -108,6 +108,24 @@ ThinkPHP、uni-app、微信小程序轻量识别每个端口最多发现 3 层
|
|
|
108
108
|
|
|
109
109
|
需要落盘时按需创建或更新 `xinyun-ai/global-review/`、`xinyun-ai/global-review/index.json`,并同步 `xinyun-ai/index/project-index.json`。全局审视不代替改动计划,也不会授权 AI 直接修改业务代码。
|
|
110
110
|
|
|
111
|
+
## AI 项目团队与责任闭环
|
|
112
|
+
|
|
113
|
+
初始化时必须创建 `xinyun-ai/team/`,包含 5 个逻辑角色:`project-owner`、`project-product`、`chief-engineer`、`programmer`、`test-reviewer`。
|
|
114
|
+
|
|
115
|
+
团队配置必须包含 5 个 JSON:`roles.json`、`members.json`、`assignments.json`、`responsibility-matrix.json`、`file-ownership.json`;还必须包含 5 份 `confirmations/<roleId>.md` 和 5 份 `understandings/<roleId>.md`。
|
|
116
|
+
|
|
117
|
+
`manifest.json` 必须声明 `capabilities.teamResponsibilityClosure: true` 并登记 team 的 8 个相对路径;`project-index.json` 必须登记 `team.enabled`、`roleCount=5`、`confirmationCount=5`、`status=pending-confirmation` 和同名路径。
|
|
118
|
+
|
|
119
|
+
团队角色只是本地逻辑配置,不自动创建外部人员账号、外部 AI 会话或无限会话。未绑定真实人员或会话时,`personId`、`sessionId`、`memberId`、`confirmedBy` 使用 `null`,不得虚构。
|
|
120
|
+
|
|
121
|
+
角色生命周期:`unassigned`、`assigned`、`onboarding`、`ready`、`blocked`、`disabled`。职责确认状态:`pending`、`confirmed`、`adjustment-required`。任务分配状态:`pending`、`assigned`、`accepted`、`executing`、`paused`、`blocked`、`completed`、`cancelled`。
|
|
122
|
+
|
|
123
|
+
`status=paused` 时必须填写 `pauseReason`,超范围统一使用 `pauseReason=out-of-scope`;不得使用未定义状态 `paused-out-of-scope`。确认人不可用或成员冲突时使用 `status=blocked`,并填写 `blockedReason=approver-unavailable` 或 `member-conflict`。
|
|
124
|
+
|
|
125
|
+
执行人不得直接作为自己的最终确认人,冲突必须按成员 ID 判断:`memberId` 不得等于 `technicalApproverMemberId`、`businessApproverMemberId` 或 `publishAuthorizerMemberId`。`roles.json` 中的默认确认角色只用于候选推荐,不能覆盖成员级冲突校验。程序员不得担任技术最终确认人、业务最终确认人或发布授权人。
|
|
126
|
+
|
|
127
|
+
任务开始前记录预计更新文件目录,完成后通过文件清单和 diff 只读核对实际更新文件目录。发现实际修改超出预计目录时,任务必须设置 `status=paused`、`pauseReason=out-of-scope`,返回总工或主会话重新确认。
|
|
128
|
+
|
|
111
129
|
AI 接手本项目时,请先读取:
|
|
112
130
|
|
|
113
131
|
- `xinyun-ai/README.md`
|
|
@@ -26,8 +26,10 @@
|
|
|
26
26
|
|
|
27
27
|
## 初始化授权边界
|
|
28
28
|
|
|
29
|
-
- 用户发送 `xinyun-ai-init` 一句话入口后,视为已授权 AI 创建或补齐最小 `xinyun-ai/` 与极简 `AGENTS.md`。
|
|
29
|
+
- 用户发送 `xinyun-ai-init` 一句话入口后,视为已授权 AI 创建或补齐最小 `xinyun-ai/`、`xinyun-ai/team/` 与极简 `AGENTS.md`。
|
|
30
30
|
- 该授权不包含业务代码、配置、数据库、依赖、构建脚本、测试逻辑、API 行为、UI 行为或业务流程修改。
|
|
31
|
+
- `xinyun-ai/team/**` 属于 AI 工作区控制文件,只创建本地逻辑角色、待绑定成员槽位、职责确认记录和角色理解记录,不自动创建外部账号、外部 AI 会话或无限会话。
|
|
32
|
+
- 未绑定真实人员或会话时,`personId`、`sessionId`、`memberId`、`confirmedBy` 使用 `null`,不得虚构。
|
|
31
33
|
|
|
32
34
|
## 改动计划与执行确认
|
|
33
35
|
|
|
@@ -248,6 +250,116 @@
|
|
|
248
250
|
- 创建或更新全局审视后,应同步 `xinyun-ai/global-review/index.json` 和 `xinyun-ai/index/project-index.json`。
|
|
249
251
|
- 全局审视不会授权 AI 直接修改业务代码。
|
|
250
252
|
|
|
253
|
+
## AI 项目团队与责任闭环
|
|
254
|
+
|
|
255
|
+
- 初始化时必须创建 `xinyun-ai/team/`。
|
|
256
|
+
- 默认逻辑角色为:`project-owner`、`project-product`、`chief-engineer`、`programmer`、`test-reviewer`。
|
|
257
|
+
- 首次必须创建 5 个 JSON 配置:`roles.json`、`members.json`、`assignments.json`、`responsibility-matrix.json`、`file-ownership.json`。
|
|
258
|
+
- 首次必须创建 5 份职责确认记录:`confirmations/<roleId>.md`,文件名必须使用 `roleId`。
|
|
259
|
+
- 首次必须创建 5 份角色理解记录:`understandings/<roleId>.md`,文件名必须使用 `roleId`。
|
|
260
|
+
- `roles.json` 的 `roleId` 必须全局唯一;所有 ID 必须唯一。
|
|
261
|
+
- `members.json` 未绑定时 `personId` 和 `sessionId` 必须为 `null`,不得虚构真实人员或会话。
|
|
262
|
+
- `confirmations/<roleId>.md` 和 `understandings/<roleId>.md` 的 `createdAt`、`updatedAt` 必须存在且为 ISO 8601 时间;首次落盘可使用模板初始时间或替换为当前时间,但不得留空。
|
|
263
|
+
- `xinyun-ai/manifest.json` 必须包含 `capabilities.teamResponsibilityClosure: true`,并登记 team 的 8 个路径:`directory`、`roles`、`members`、`assignments`、`responsibilityMatrix`、`fileOwnership`、`understandingsDirectory`、`confirmationsDirectory`。
|
|
264
|
+
- `xinyun-ai/index/project-index.json` 必须登记 `team.enabled`、`directory`、`roleCount=5`、`confirmationCount=5`、`status=pending-confirmation` 和同名 `paths`。
|
|
265
|
+
- 注册路径必须与实际文件系统路径逐项一致。
|
|
266
|
+
|
|
267
|
+
角色职责:
|
|
268
|
+
|
|
269
|
+
- 项目负责人负责需求最终确认、业务验收和发布授权。
|
|
270
|
+
- 项目产品负责需求整理、任务拆分和产品验收建议,不拥有技术最终确认权或发布授权权。
|
|
271
|
+
- 总工 / 技术负责人负责技术方案、架构风险和技术最终确认。
|
|
272
|
+
- 程序员按确认范围执行代码、配置和测试任务。
|
|
273
|
+
- 测试审查员独立测试、发布阻断判断和测试结论,不修改代码。
|
|
274
|
+
|
|
275
|
+
状态分层:
|
|
276
|
+
|
|
277
|
+
- 角色生命周期:`unassigned`、`assigned`、`onboarding`、`ready`、`blocked`、`disabled`。
|
|
278
|
+
- 职责确认状态:`pending`、`confirmed`、`adjustment-required`。
|
|
279
|
+
- 任务分配状态:`pending`、`assigned`、`accepted`、`executing`、`paused`、`blocked`、`completed`、`cancelled`。
|
|
280
|
+
- `status=paused` 时必须填写 `pauseReason`,允许值至少包括 `out-of-scope`、`awaiting-confirmation`、`execution-failed`、`user-requested`;其他状态的 `pauseReason` 必须为 `null`。
|
|
281
|
+
- 确认人不可用或发生成员冲突时使用 `status=blocked`,并填写 `blockedReason=approver-unavailable` 或 `blockedReason=member-conflict`。
|
|
282
|
+
|
|
283
|
+
可执行前置条件:
|
|
284
|
+
|
|
285
|
+
- 成员已绑定。
|
|
286
|
+
- 角色生命周期为 `ready`。
|
|
287
|
+
- 职责确认状态为 `confirmed`。
|
|
288
|
+
- 角色理解记录为 `ready`。
|
|
289
|
+
- 任务执行人和确认人不冲突。
|
|
290
|
+
- 角色理解记录不等于代码修改授权;即使 `executionEligible=true`,仍必须有已确认任务单。
|
|
291
|
+
|
|
292
|
+
成员级确认冲突:
|
|
293
|
+
|
|
294
|
+
- 执行人不得直接作为自己的最终确认人。
|
|
295
|
+
- 最终确认关系必须在任务分配记录中落到成员 ID。
|
|
296
|
+
- `memberId` 不得等于 `technicalApproverMemberId`、`businessApproverMemberId` 或 `publishAuthorizerMemberId`。
|
|
297
|
+
- `roles.json` 中的默认确认角色只用于候选人推荐,不构成授权,也不能覆盖成员级冲突校验。
|
|
298
|
+
- 总工为执行人时不得回落为自己确认自己。
|
|
299
|
+
- 没有可用技术、业务或发布确认成员时,任务保持 `blocked` / 待分配,不得自动使用执行成员、虚构成员或空确认通过。
|
|
300
|
+
- 程序员不得担任技术最终确认人、业务最终确认人或发布授权人;本版本不设置例外。
|
|
301
|
+
|
|
302
|
+
角色理解记录最小字段:
|
|
303
|
+
|
|
304
|
+
- `recordId`
|
|
305
|
+
- `roleId`
|
|
306
|
+
- `memberId`
|
|
307
|
+
- `status`:`pending` / `reading` / `ready` / `partial` / `blocked`
|
|
308
|
+
- `readScope`
|
|
309
|
+
- `readBudget`
|
|
310
|
+
- `unreadablePaths`
|
|
311
|
+
- `confirmedFacts`
|
|
312
|
+
- `inferences`
|
|
313
|
+
- `pendingQuestions`
|
|
314
|
+
- `risks`
|
|
315
|
+
- `evidence`
|
|
316
|
+
- `coverage`
|
|
317
|
+
- `executionEligible`
|
|
318
|
+
- `createdAt`
|
|
319
|
+
- `updatedAt`
|
|
320
|
+
|
|
321
|
+
任务责任字段:
|
|
322
|
+
|
|
323
|
+
```md
|
|
324
|
+
- 需求负责人:
|
|
325
|
+
- 技术负责人 / 总工:
|
|
326
|
+
- 执行人:
|
|
327
|
+
- 测试审查人:
|
|
328
|
+
- 技术最终确认人:
|
|
329
|
+
- 业务最终确认人:
|
|
330
|
+
- 发布授权人:
|
|
331
|
+
```
|
|
332
|
+
|
|
333
|
+
文件目录责任和变更核对:
|
|
334
|
+
|
|
335
|
+
```md
|
|
336
|
+
## 预计更新文件目录
|
|
337
|
+
- 文件或目录:
|
|
338
|
+
- 文件类型:
|
|
339
|
+
- 负责角色:
|
|
340
|
+
- 执行角色:
|
|
341
|
+
- 审查角色:
|
|
342
|
+
- 最终确认角色:
|
|
343
|
+
|
|
344
|
+
## 实际更新文件目录
|
|
345
|
+
- 已修改:
|
|
346
|
+
- 新增:
|
|
347
|
+
- 删除:
|
|
348
|
+
- 未修改:
|
|
349
|
+
- 超出预计范围:
|
|
350
|
+
- 是否需要重新确认:
|
|
351
|
+
```
|
|
352
|
+
|
|
353
|
+
- 目录记录以相对 `repoRoot` 的正斜线路径为准,跨仓库必须分别记录。
|
|
354
|
+
- 文件、目录、通配符分别通过 `pathType` 标注;`pathType` 只能是 `file`、`directory` 或 `glob`。
|
|
355
|
+
- 路径不得包含 `..`。
|
|
356
|
+
- 删除和重命名必须记录旧路径,重命名还必须记录新路径。
|
|
357
|
+
- 生成文件必须列出实际输出路径。
|
|
358
|
+
- `xinyun-ai/team/**`、`xinyun-ai/current-task.md`、`xinyun-ai/index/session-current.md`、`xinyun-ai/handoffs/**` 属于控制文件,计入实际更新记录,但与业务代码修改分栏统计。
|
|
359
|
+
- 实际目录通过文件清单和 diff 只读核对。
|
|
360
|
+
- 发现未授权路径后,任务状态改为 `paused`、`pauseReason=out-of-scope`,记录责任人、发现人、影响范围和重新确认人。
|
|
361
|
+
- 不得使用未定义状态 `paused-out-of-scope`。
|
|
362
|
+
|
|
251
363
|
## 双会话执行闭环(MVP)
|
|
252
364
|
|
|
253
365
|
- 复杂改动可使用一个主会话 + 一个执行会话的手工协作闭环;普通咨询、只读分析和不涉及文件修改的任务仍可使用单会话。
|
|
@@ -75,6 +75,40 @@
|
|
|
75
75
|
- status:
|
|
76
76
|
- 执行任务单:
|
|
77
77
|
- 执行交接单:
|
|
78
|
+
- 团队责任闭环:
|
|
79
|
+
- 需求负责人:
|
|
80
|
+
- 技术负责人 / 总工:
|
|
81
|
+
- 执行人:
|
|
82
|
+
- 测试审查人:
|
|
83
|
+
- 技术最终确认人:
|
|
84
|
+
- 业务最终确认人:
|
|
85
|
+
- 发布授权人:
|
|
86
|
+
- memberId:
|
|
87
|
+
- reviewerMemberId:
|
|
88
|
+
- technicalApproverMemberId:
|
|
89
|
+
- businessApproverMemberId:
|
|
90
|
+
- publishAuthorizerMemberId:
|
|
91
|
+
- blockedReason:
|
|
92
|
+
- pauseReason:
|
|
93
|
+
- memberId 冲突检查:
|
|
94
|
+
- 职责确认状态:
|
|
95
|
+
- 角色理解状态:
|
|
96
|
+
- 预计更新文件目录:
|
|
97
|
+
- 文件或目录:
|
|
98
|
+
- 文件类型:
|
|
99
|
+
- 负责角色:
|
|
100
|
+
- 执行角色:
|
|
101
|
+
- 审查角色:
|
|
102
|
+
- 最终确认角色:
|
|
103
|
+
- 实际更新文件目录:
|
|
104
|
+
- 已修改:
|
|
105
|
+
- 新增:
|
|
106
|
+
- 删除:
|
|
107
|
+
- 未修改:
|
|
108
|
+
- 超出预计范围:
|
|
109
|
+
- 是否需要重新确认:
|
|
110
|
+
- 控制文件:
|
|
111
|
+
- 业务代码:
|
|
78
112
|
- 交付状态:
|
|
79
113
|
- 未完成事项:
|
|
80
114
|
- 下一步动作:
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"projectName": "",
|
|
3
|
-
"xinyunAiVersion": "1.
|
|
3
|
+
"xinyunAiVersion": "1.5.0",
|
|
4
4
|
"scriptVersion": "2026.07.16",
|
|
5
5
|
"schemaVersion": "1",
|
|
6
6
|
"initializationMode": "fast",
|
|
@@ -30,6 +30,17 @@
|
|
|
30
30
|
"frameworkEvidenceBudget": true,
|
|
31
31
|
"readonlyGitRepositoryIndex": true,
|
|
32
32
|
"boundedFieldImpactReview": true,
|
|
33
|
-
"fieldChangeRequirementRouting": true
|
|
33
|
+
"fieldChangeRequirementRouting": true,
|
|
34
|
+
"teamResponsibilityClosure": true
|
|
35
|
+
},
|
|
36
|
+
"team": {
|
|
37
|
+
"directory": "xinyun-ai/team/",
|
|
38
|
+
"roles": "xinyun-ai/team/roles.json",
|
|
39
|
+
"members": "xinyun-ai/team/members.json",
|
|
40
|
+
"assignments": "xinyun-ai/team/assignments.json",
|
|
41
|
+
"responsibilityMatrix": "xinyun-ai/team/responsibility-matrix.json",
|
|
42
|
+
"fileOwnership": "xinyun-ai/team/file-ownership.json",
|
|
43
|
+
"understandingsDirectory": "xinyun-ai/team/understandings/",
|
|
44
|
+
"confirmationsDirectory": "xinyun-ai/team/confirmations/"
|
|
34
45
|
}
|
|
35
46
|
}
|
|
@@ -34,6 +34,16 @@
|
|
|
34
34
|
- 检索根目录与排除项:待填写
|
|
35
35
|
- CodeGraph 状态与降级说明:待填写
|
|
36
36
|
- 证据、可能遗漏和兼容方案:待填写
|
|
37
|
+
- AI 项目团队与责任闭环:待填写
|
|
38
|
+
- `xinyun-ai/team/` 是否创建:待填写
|
|
39
|
+
- 5 个 JSON 配置是否可解析:待填写
|
|
40
|
+
- 5 份 `confirmations/<roleId>.md` 是否存在:待填写
|
|
41
|
+
- 5 份 `understandings/<roleId>.md` 是否存在:待填写
|
|
42
|
+
- `manifest.json` team 路径注册:待填写
|
|
43
|
+
- `project-index.json` team 路径注册:待填写
|
|
44
|
+
- 未绑定成员是否使用 `null`:待填写
|
|
45
|
+
- 自确认 memberId 冲突阻断:待填写
|
|
46
|
+
- 超范围暂停是否为 `status=paused` + `pauseReason=out-of-scope`:待填写
|
|
37
47
|
|
|
38
48
|
## 待确认问题
|
|
39
49
|
|
|
@@ -105,9 +105,26 @@
|
|
|
105
105
|
|
|
106
106
|
- 初始化模式:待填写。
|
|
107
107
|
- 已创建或更新文件:待填写。
|
|
108
|
+
- AI 项目团队:待填写。
|
|
109
|
+
- 团队路径注册:待填写。
|
|
110
|
+
- 角色数量:待填写。
|
|
111
|
+
- 职责确认记录数量:待填写。
|
|
112
|
+
- 角色理解记录数量:待填写。
|
|
108
113
|
- 是否接管旧沉淀:待填写。
|
|
109
114
|
- 是否有待确认项:待填写。
|
|
110
115
|
|
|
116
|
+
## AI 项目团队与责任闭环
|
|
117
|
+
|
|
118
|
+
- 团队目录:`xinyun-ai/team/`
|
|
119
|
+
- 角色:项目负责人、项目产品、总工、程序员、测试审查员。
|
|
120
|
+
- 当前状态:pending-confirmation。
|
|
121
|
+
- 未绑定成员:待填写。
|
|
122
|
+
- 职责确认:待填写。
|
|
123
|
+
- 角色理解:待填写。
|
|
124
|
+
- 成员级自确认阻断:待填写。
|
|
125
|
+
- 文件目录责任:待填写。
|
|
126
|
+
- 超范围暂停规则:`status=paused` + `pauseReason=out-of-scope`。
|
|
127
|
+
|
|
111
128
|
## CodeGraph 与索引状态
|
|
112
129
|
|
|
113
130
|
待填写。
|
|
@@ -70,5 +70,23 @@
|
|
|
70
70
|
"fieldTypes": ["数据库字段", "API 字段", "前端展示字段", "未确认"],
|
|
71
71
|
"routes": ["字段影响审视", "普通改动计划", "SQL 提醒", "业务流程理解"]
|
|
72
72
|
},
|
|
73
|
+
"team": {
|
|
74
|
+
"enabled": true,
|
|
75
|
+
"directory": "xinyun-ai/team/",
|
|
76
|
+
"roleCount": 5,
|
|
77
|
+
"confirmationCount": 5,
|
|
78
|
+
"understandingCount": 5,
|
|
79
|
+
"status": "pending-confirmation",
|
|
80
|
+
"paths": {
|
|
81
|
+
"directory": "xinyun-ai/team/",
|
|
82
|
+
"roles": "xinyun-ai/team/roles.json",
|
|
83
|
+
"members": "xinyun-ai/team/members.json",
|
|
84
|
+
"assignments": "xinyun-ai/team/assignments.json",
|
|
85
|
+
"responsibilityMatrix": "xinyun-ai/team/responsibility-matrix.json",
|
|
86
|
+
"fileOwnership": "xinyun-ai/team/file-ownership.json",
|
|
87
|
+
"understandingsDirectory": "xinyun-ai/team/understandings/",
|
|
88
|
+
"confirmationsDirectory": "xinyun-ai/team/confirmations/"
|
|
89
|
+
}
|
|
90
|
+
},
|
|
73
91
|
"lastUpdatedAt": ""
|
|
74
92
|
}
|
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
# AI 项目团队
|
|
2
|
+
|
|
3
|
+
本目录用于记录本地 AI 协作团队、职责确认、角色理解、任务责任和文件目录责任。
|
|
4
|
+
|
|
5
|
+
## 初始化边界
|
|
6
|
+
|
|
7
|
+
- 团队配置只创建逻辑角色和待绑定成员槽位,不自动创建外部人员账号、外部 AI 会话或无限会话。
|
|
8
|
+
- 未绑定真实人员或会话时,`personId`、`sessionId`、`memberId`、`confirmedBy` 使用 `null`,不得虚构姓名或会话 ID。
|
|
9
|
+
- `confirmations/<roleId>.md` 和 `understandings/<roleId>.md` 的 `createdAt`、`updatedAt` 必须存在且为 ISO 8601 时间;首次落盘可使用模板初始时间或替换为当前时间,但不得留空。
|
|
10
|
+
- `xinyun-ai/team/**` 属于 AI 工作区控制文件,不授权修改业务代码、数据库、API、依赖、构建脚本或执行发布操作。
|
|
11
|
+
|
|
12
|
+
## 默认角色
|
|
13
|
+
|
|
14
|
+
- `project-owner`:项目负责人,负责需求最终确认、业务验收和发布授权。
|
|
15
|
+
- `project-product`:项目产品,负责需求整理、任务拆分和产品验收建议。
|
|
16
|
+
- `chief-engineer`:总工 / 技术负责人,负责技术方案、架构风险和技术最终确认。
|
|
17
|
+
- `programmer`:程序员,按确认范围执行代码、配置和测试任务。
|
|
18
|
+
- `test-reviewer`:测试审查员,独立测试、发布阻断判断和测试结论,不修改代码。
|
|
19
|
+
|
|
20
|
+
## 状态规则
|
|
21
|
+
|
|
22
|
+
- 角色生命周期:`unassigned`、`assigned`、`onboarding`、`ready`、`blocked`、`disabled`。
|
|
23
|
+
- 职责确认状态:`pending`、`confirmed`、`adjustment-required`。
|
|
24
|
+
- 任务分配状态:`pending`、`assigned`、`accepted`、`executing`、`paused`、`blocked`、`completed`、`cancelled`。
|
|
25
|
+
- `status=paused` 时必须填写 `pauseReason`,超范围统一使用 `pauseReason=out-of-scope`。
|
|
26
|
+
- `status=blocked` 时必须填写 `blockedReason`,确认人不可用为 `approver-unavailable`,成员冲突为 `member-conflict`。
|
|
27
|
+
- 执行人不得作为自己的技术最终确认人、业务最终确认人或发布授权人;冲突必须按 `memberId` 判断。
|
|
28
|
+
|
|
29
|
+
## 文件目录责任
|
|
30
|
+
|
|
31
|
+
任务开始前记录预计更新文件目录,任务完成后通过文件清单和 diff 只读核对实际更新文件目录。
|
|
32
|
+
|
|
33
|
+
发现实际修改超出预计目录时,任务必须设置:
|
|
34
|
+
|
|
35
|
+
```md
|
|
36
|
+
status=paused
|
|
37
|
+
pauseReason=out-of-scope
|
|
38
|
+
```
|
|
39
|
+
|
|
40
|
+
不得使用未定义状态 `paused-out-of-scope`。
|