@pm_zhousl/xinyun-ai-init 2.0.0 → 3.0.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/README.md +29 -39
- package/bin/xinyun-ai-init.js +121 -175
- package/init/xinyun-ai-init/README.md +26 -144
- package/init/xinyun-ai-init/rules/v3-skill-runtime.md +45 -0
- package/init/xinyun-ai-init/runtime/migrate-v3.js +115 -0
- package/init/xinyun-ai-init/runtime/route-skill.js +69 -0
- package/init/xinyun-ai-init/runtime-manifest.json +26 -0
- package/init/xinyun-ai-init/skills/registry.json +112 -0
- package/init/xinyun-ai-init/templates/AGENTS.template.md +4 -27
- package/init/xinyun-ai-init/templates/README.template.md +3 -31
- package/init/xinyun-ai-init/templates/control-plane-index.template.json +5 -24
- package/init/xinyun-ai-init/templates/core-rules.template.md +9 -57
- package/init/xinyun-ai-init/templates/current-task.template.md +3 -19
- package/init/xinyun-ai-init/templates/manifest.template.json +13 -67
- package/init/xinyun-ai-init/templates/project-context.template.json +3 -11
- package/init/xinyun-ai-init/templates/project-index.template.json +5 -51
- package/init/xinyun-ai-init/templates/skill-run-record.template.json +4 -16
- package/init/xinyun-ai-init/templates/skill-runtime-route.template.json +3 -24
- package/init/xinyun-ai-init/templates/skills-assignments.template.json +3 -21
- package/init/xinyun-ai-init/templates/skills-registry.template.json +5 -29
- package/init/xinyun-ai-init/templates/task-graph.template.json +3 -5
- package/init/xinyun-ai-init/templates/task-index.template.json +3 -31
- package/init/xinyun-ai-init/version.json +8 -8
- package/package.json +8 -14
- package/scripts/run-v3-runtime-probe.js +8 -0
- package/scripts/verify-legacy-cleanup.js +24 -0
- package/scripts/verify-release-gate.js +10 -23
- package/scripts/verify-rules-tarball-security.js +1 -1
- package/scripts/verify-skill-runtime.js +33 -0
- package/scripts/verify-tarball.js +42 -0
- package/scripts/verify-v3-package.js +70 -0
- package/test-scenarios/v3.0.0-behavior-evidence.json +25 -0
- package/test-scenarios/v3.0.0-scenarios.md +41 -0
- package/init/xinyun-ai-init/prompt.md +0 -1
- package/init/xinyun-ai-init/rules/coordination.md +0 -43
- package/init/xinyun-ai-init/rules/directory-self-completion.md +0 -100
- package/init/xinyun-ai-init/rules/frameworks/README.md +0 -56
- package/init/xinyun-ai-init/rules/frameworks/backend/php/thinkphp.md +0 -42
- package/init/xinyun-ai-init/rules/frameworks/frontend/uni-app.md +0 -36
- package/init/xinyun-ai-init/rules/frameworks/frontend/wechat-miniprogram.md +0 -36
- package/init/xinyun-ai-init/rules/frontend-audit.md +0 -9
- package/init/xinyun-ai-init/rules/init-rules.md +0 -145
- package/init/xinyun-ai-init/rules/self-learning-rules.md +0 -16
- package/init/xinyun-ai-init/rules/session-workbench.md +0 -333
- package/init/xinyun-ai-init/rules/skills.md +0 -23
- package/init/xinyun-ai-init/rules/temporary-sessions.md +0 -13
- package/init/xinyun-ai-init/rules/upgrade-rules.md +0 -161
- package/init/xinyun-ai-init/rules/v1.10.2-contract.md +0 -30
- package/init/xinyun-ai-init/rules/v1.11.0-acceleration.md +0 -27
- package/init/xinyun-ai-init/rules/v1.12.0-recovery.md +0 -34
- package/init/xinyun-ai-init/rules/v1.12.1-provider-session-binding.md +0 -25
- package/init/xinyun-ai-init/rules/v1.13.0-host-adapter.md +0 -43
- package/init/xinyun-ai-init/rules/v1.14.0-agent-core.md +0 -35
- package/init/xinyun-ai-init/rules/v1.15.0-session-binding.md +0 -44
- package/init/xinyun-ai-init/rules/v1.16.0-capability-efficiency.md +0 -23
- package/init/xinyun-ai-init/rules/v2.0.0-shared-project-conversations.md +0 -68
- package/init/xinyun-ai-init/rules/v2.0.0-single-session-skills.md +0 -89
- package/init/xinyun-ai-init/scripts/README.md +0 -16
- package/init/xinyun-ai-init/templates/agent-capabilities.template.json +0 -27
- package/init/xinyun-ai-init/templates/agent-profile.template.json +0 -21
- package/init/xinyun-ai-init/templates/archive-transaction.template.json +0 -15
- package/init/xinyun-ai-init/templates/bootstrap-snapshot.template.json +0 -22
- package/init/xinyun-ai-init/templates/capabilities.template.json +0 -19
- package/init/xinyun-ai-init/templates/codegraph-incremental-record.template.json +0 -21
- package/init/xinyun-ai-init/templates/conversation-binding.template.json +0 -26
- package/init/xinyun-ai-init/templates/conversation-event.template.json +0 -24
- package/init/xinyun-ai-init/templates/conversation-registry.template.json +0 -15
- package/init/xinyun-ai-init/templates/conversation-stream-head.template.json +0 -14
- package/init/xinyun-ai-init/templates/conversation-sync-cursor.template.json +0 -13
- package/init/xinyun-ai-init/templates/coordination-change-ledger.template.json +0 -15
- package/init/xinyun-ai-init/templates/coordination-conflict-record.template.json +0 -18
- package/init/xinyun-ai-init/templates/coordination-contract-snapshot.template.json +0 -9
- package/init/xinyun-ai-init/templates/coordination-project-facts.template.json +0 -20
- package/init/xinyun-ai-init/templates/coordination-transaction.template.json +0 -16
- package/init/xinyun-ai-init/templates/database-authorization.template.json +0 -53
- package/init/xinyun-ai-init/templates/final-delivery.template.json +0 -22
- package/init/xinyun-ai-init/templates/fixed-materialization.template.json +0 -12
- package/init/xinyun-ai-init/templates/framework-profile.template.json +0 -48
- package/init/xinyun-ai-init/templates/framework-profile.template.md +0 -39
- package/init/xinyun-ai-init/templates/frontend-audit.template.json +0 -27
- package/init/xinyun-ai-init/templates/handoff.template.json +0 -27
- package/init/xinyun-ai-init/templates/host-capabilities.template.json +0 -37
- package/init/xinyun-ai-init/templates/host-preflight.template.json +0 -33
- package/init/xinyun-ai-init/templates/html-migration-asset-map.template.md +0 -6
- package/init/xinyun-ai-init/templates/html-migration-compatibility-matrix.template.md +0 -6
- package/init/xinyun-ai-init/templates/html-migration-open-issues.template.md +0 -12
- package/init/xinyun-ai-init/templates/html-migration-pilot-plan.template.md +0 -21
- package/init/xinyun-ai-init/templates/html-migration-record.template.json +0 -36
- package/init/xinyun-ai-init/templates/html-migration-route-map.template.md +0 -6
- package/init/xinyun-ai-init/templates/html-migration-scope.template.md +0 -28
- package/init/xinyun-ai-init/templates/init-result.template.json +0 -25
- package/init/xinyun-ai-init/templates/initialization-cache.template.json +0 -13
- package/init/xinyun-ai-init/templates/initialization-change-report.template.json +0 -14
- package/init/xinyun-ai-init/templates/initialization-recovery.template.json +0 -24
- package/init/xinyun-ai-init/templates/initialization-stages.template.json +0 -18
- package/init/xinyun-ai-init/templates/initialization-timing.template.json +0 -16
- package/init/xinyun-ai-init/templates/local-query-index.template.json +0 -15
- package/init/xinyun-ai-init/templates/managed-baseline.template.json +0 -17
- package/init/xinyun-ai-init/templates/manual-session-binding.template.json +0 -45
- package/init/xinyun-ai-init/templates/manual-session-recovery.template.json +0 -53
- package/init/xinyun-ai-init/templates/multi-conversation-migration.template.json +0 -24
- package/init/xinyun-ai-init/templates/onboarding-report.template.json +0 -30
- package/init/xinyun-ai-init/templates/orchestrator.template.json +0 -28
- package/init/xinyun-ai-init/templates/parallelism.template.json +0 -13
- package/init/xinyun-ai-init/templates/performance-metrics.template.json +0 -17
- package/init/xinyun-ai-init/templates/preflight-report.template.json +0 -25
- package/init/xinyun-ai-init/templates/project-check.template.md +0 -56
- package/init/xinyun-ai-init/templates/project-guide.template.md +0 -57
- package/init/xinyun-ai-init/templates/project-identity.template.json +0 -23
- package/init/xinyun-ai-init/templates/project-status.template.json +0 -28
- package/init/xinyun-ai-init/templates/provider-adapter.template.json +0 -25
- package/init/xinyun-ai-init/templates/provider-session-binding.template.json +0 -77
- package/init/xinyun-ai-init/templates/re-takeover-record.template.json +0 -37
- package/init/xinyun-ai-init/templates/requirement-packet.template.json +0 -23
- package/init/xinyun-ai-init/templates/role-execution.template.md +0 -72
- package/init/xinyun-ai-init/templates/role-session-binding.template.json +0 -105
- package/init/xinyun-ai-init/templates/role-subtask.template.md +0 -36
- package/init/xinyun-ai-init/templates/session-binding.template.json +0 -38
- package/init/xinyun-ai-init/templates/session-candidates.template.json +0 -19
- package/init/xinyun-ai-init/templates/shared-project-snapshot.template.json +0 -24
- package/init/xinyun-ai-init/templates/single-session-migration.template.json +0 -31
- package/init/xinyun-ai-init/templates/sync-check.template.json +0 -23
- package/init/xinyun-ai-init/templates/takeover-baseline.template.json +0 -17
- package/init/xinyun-ai-init/templates/takeover-gate.template.json +0 -22
- package/init/xinyun-ai-init/templates/task-history.template.md +0 -35
- package/init/xinyun-ai-init/templates/task-lease.template.json +0 -19
- package/init/xinyun-ai-init/templates/task-lock.template.json +0 -31
- package/init/xinyun-ai-init/templates/task-main.template.md +0 -38
- package/init/xinyun-ai-init/templates/task-result.template.json +0 -23
- package/init/xinyun-ai-init/templates/team/README.md +0 -51
- package/init/xinyun-ai-init/templates/team/assignments.json +0 -49
- package/init/xinyun-ai-init/templates/team/confirmations/chief-engineer.md +0 -24
- package/init/xinyun-ai-init/templates/team/confirmations/programmer.md +0 -24
- package/init/xinyun-ai-init/templates/team/confirmations/project-owner.md +0 -24
- package/init/xinyun-ai-init/templates/team/confirmations/project-product.md +0 -24
- package/init/xinyun-ai-init/templates/team/confirmations/test-reviewer.md +0 -24
- package/init/xinyun-ai-init/templates/team/file-ownership.json +0 -32
- package/init/xinyun-ai-init/templates/team/members.json +0 -61
- package/init/xinyun-ai-init/templates/team/responsibility-matrix.json +0 -81
- package/init/xinyun-ai-init/templates/team/roles.json +0 -71
- package/init/xinyun-ai-init/templates/team/understandings/chief-engineer.md +0 -23
- package/init/xinyun-ai-init/templates/team/understandings/programmer.md +0 -23
- package/init/xinyun-ai-init/templates/team/understandings/project-owner.md +0 -23
- package/init/xinyun-ai-init/templates/team/understandings/project-product.md +0 -23
- package/init/xinyun-ai-init/templates/team/understandings/test-reviewer.md +0 -23
- package/init/xinyun-ai-init/templates/technical-impact-packet.template.json +0 -31
- package/init/xinyun-ai-init/templates/technical-landscape.template.json +0 -41
- package/init/xinyun-ai-init/templates/temporary-session.template.json +0 -32
- package/init/xinyun-ai-init/templates/workstreams-readme.template.md +0 -36
- package/scripts/collect-v1.10-evidence.js +0 -159
- package/scripts/collect-v1.14-local-evidence.js +0 -66
- package/scripts/collect-v1.15-real-evidence.js +0 -114
- package/scripts/collect-v1.16-evidence.js +0 -48
- package/scripts/collect-v2-evidence.js +0 -35
- package/scripts/run-v1.16-runtime-probe.js +0 -91
- package/scripts/run-v2-runtime-probe.js +0 -110
- package/scripts/verify-init-package.js +0 -2297
- package/scripts/verify-multi-conversation-contract.js +0 -61
- package/scripts/verify-re-takeover-contract.js +0 -54
- package/scripts/verify-rules-package.js +0 -1287
- package/scripts/verify-v2-package.js +0 -210
- package/scripts/verify-v2-tarball.js +0 -73
- package/test-scenarios/README.md +0 -130
- package/test-scenarios/fixtures/v1.10.0-takeover-gate-fixture/README.md +0 -23
- package/test-scenarios/fixtures/v1.10.0-takeover-gate-fixture/after/project-status.json +0 -7
- package/test-scenarios/fixtures/v1.10.0-takeover-gate-fixture/before/project-status.json +0 -7
- package/test-scenarios/fixtures/v1.9.0-behavior-fixture/README.md +0 -9
- package/test-scenarios/multi-conversation-evidence.json +0 -26
- package/test-scenarios/multi-conversation-scenarios.md +0 -16
- package/test-scenarios/re-takeover-evidence.json +0 -20
- package/test-scenarios/re-takeover-scenarios.md +0 -33
- package/test-scenarios/review-template.md +0 -165
- package/test-scenarios/scenarios.md +0 -1273
- package/test-scenarios/v1.10.0-behavior-evidence.json +0 -31
- package/test-scenarios/v1.10.0-scenarios.md +0 -96
- package/test-scenarios/v1.10.2-scenarios.md +0 -38
- package/test-scenarios/v1.11.0-scenarios.md +0 -30
- package/test-scenarios/v1.12.0-behavior-evidence.json +0 -29
- package/test-scenarios/v1.12.0-scenarios.md +0 -51
- package/test-scenarios/v1.12.1-behavior-evidence.json +0 -27
- package/test-scenarios/v1.12.1-scenarios.md +0 -42
- package/test-scenarios/v1.13.0-behavior-evidence.json +0 -650
- package/test-scenarios/v1.13.0-scenarios.md +0 -94
- package/test-scenarios/v1.14.0-behavior-evidence.json +0 -780
- package/test-scenarios/v1.14.0-scenarios.md +0 -63
- package/test-scenarios/v1.15.0-behavior-evidence.json +0 -476
- package/test-scenarios/v1.15.0-scenarios.md +0 -57
- package/test-scenarios/v1.16.0-behavior-evidence.json +0 -46
- package/test-scenarios/v1.16.0-real-host-probe.json +0 -132
- package/test-scenarios/v1.16.0-scenarios.md +0 -19
- package/test-scenarios/v1.7.0-scenarios.md +0 -91
- package/test-scenarios/v1.7.1-scenarios.md +0 -130
- package/test-scenarios/v1.7.2-scenarios.md +0 -51
- package/test-scenarios/v1.7.3-scenarios.md +0 -79
- package/test-scenarios/v1.8.0-scenarios.md +0 -39
- package/test-scenarios/v1.9.0-behavior-evidence.json +0 -269
- package/test-scenarios/v1.9.0-scenarios.md +0 -55
- package/test-scenarios/v2.0.0-behavior-evidence.json +0 -40
- package/test-scenarios/v2.0.0-scenarios.md +0 -21
|
@@ -1,22 +0,0 @@
|
|
|
1
|
-
{
|
|
2
|
-
"schemaVersion": 2,
|
|
3
|
-
"executionModel": "shared-project-multi-conversation-runtime",
|
|
4
|
-
"gateId": "takeover-gate-template",
|
|
5
|
-
"status": "blocked",
|
|
6
|
-
"statusEnum": ["not-started", "assessing", "partial", "blocked", "manual-required", "ready"],
|
|
7
|
-
"executionEligible": false,
|
|
8
|
-
"contextStatus": "blocked",
|
|
9
|
-
"understandingStatus": "unknown",
|
|
10
|
-
"contextGate": {
|
|
11
|
-
"requiredFiles": ["AGENTS.md", "xinyun-ai/README.md", "xinyun-ai/manifest.json", "xinyun-ai/current-task.md", "xinyun-ai/rules/core-rules.md", "xinyun-ai/index/project-index.json"],
|
|
12
|
-
"snapshotFreshness": "unknown",
|
|
13
|
-
"status": "not-started"
|
|
14
|
-
},
|
|
15
|
-
"requiredGates": ["projectIdentity", "projectContext", "conversationBinding", "incrementalSync", "sevenHostOperations", "taskTransaction", "taskGraphConsistency", "skillRegistry", "skillRoute", "codeGraph", "sharedFacts", "conflicts", "sensitiveScan"],
|
|
16
|
-
"gates": {},
|
|
17
|
-
"missingEvidence": ["real project-session interaction and control-file evidence"],
|
|
18
|
-
"blockedReasons": ["conversation-binding-and-sync-not-verified"],
|
|
19
|
-
"nextActions": ["verify at least one conversation binding and incremental sync; real cross-conversation sharing remains a release gate"],
|
|
20
|
-
"evidence": [],
|
|
21
|
-
"updatedAt": null
|
|
22
|
-
}
|
|
@@ -1,35 +0,0 @@
|
|
|
1
|
-
# 初始化任务历史模板
|
|
2
|
-
|
|
3
|
-
- schemaVersion:1
|
|
4
|
-
- taskId:task-template
|
|
5
|
-
- taskType:workspace-initialization
|
|
6
|
-
- idempotencyKey:null
|
|
7
|
-
- reusedFromTaskId:null
|
|
8
|
-
- supersedesTaskId:null
|
|
9
|
-
- relatedTaskIds:[]
|
|
10
|
-
- status:pending
|
|
11
|
-
- attempt:1
|
|
12
|
-
- 用户原始入口:不落盘原始敏感内容;仅记录入口摘要或 hash
|
|
13
|
-
- 初始化版本:
|
|
14
|
-
- 目标版本:1.7.1
|
|
15
|
-
- 已创建文件:[]
|
|
16
|
-
- 未创建内容:[]
|
|
17
|
-
- 是否修改业务代码:unknown
|
|
18
|
-
- businessCodeChangedEvidence:[]
|
|
19
|
-
- upgradeStatus:not-started
|
|
20
|
-
- lockStatus:released
|
|
21
|
-
- blockedReason:null
|
|
22
|
-
- 恢复动作:[]
|
|
23
|
-
- createdAt:2026-07-20T00:00:00.000Z
|
|
24
|
-
- updatedAt:2026-07-20T00:00:00.000Z
|
|
25
|
-
|
|
26
|
-
## 步骤状态
|
|
27
|
-
|
|
28
|
-
| stepId | name | status | reason | nextAction |
|
|
29
|
-
|---|---|---|---|---|
|
|
30
|
-
| step-template | 初始化任务模板 | pending | null | 等待执行 |
|
|
31
|
-
|
|
32
|
-
## 状态一致性
|
|
33
|
-
|
|
34
|
-
- `current-task.md`、`tasks/<taskId>.md`、`init-result.json`、`task-lock.json` 的 `taskId`、`executionId`、`attempt`、状态和时间必须一致。
|
|
35
|
-
- 发现非法状态组合或 Markdown / JSON 冲突时,统一进入 `blocked`,不得选择性覆盖。
|
|
@@ -1,19 +0,0 @@
|
|
|
1
|
-
{
|
|
2
|
-
"schemaVersion": 1,
|
|
3
|
-
"executionModel": "shared-project-multi-conversation-runtime",
|
|
4
|
-
"leaseId": null,
|
|
5
|
-
"projectContextId": null,
|
|
6
|
-
"taskId": null,
|
|
7
|
-
"ownerConversationId": null,
|
|
8
|
-
"targetKeys": [],
|
|
9
|
-
"baselineHashes": {},
|
|
10
|
-
"status": "released",
|
|
11
|
-
"statusEnum": ["requested", "active", "renewing", "released", "expired", "conflict", "blocked", "recovery-required"],
|
|
12
|
-
"conflictingLeaseIds": [],
|
|
13
|
-
"acquiredAt": null,
|
|
14
|
-
"expiresAt": null,
|
|
15
|
-
"renewedAt": null,
|
|
16
|
-
"releasedAt": null,
|
|
17
|
-
"evidence": [],
|
|
18
|
-
"audit": []
|
|
19
|
-
}
|
|
@@ -1,31 +0,0 @@
|
|
|
1
|
-
{
|
|
2
|
-
"schemaVersion": 1,
|
|
3
|
-
"lockId": "lock-template",
|
|
4
|
-
"scope": "xinyun-ai-control",
|
|
5
|
-
"taskId": null,
|
|
6
|
-
"executionId": null,
|
|
7
|
-
"owner": {
|
|
8
|
-
"actorType": "main-session",
|
|
9
|
-
"actorId": null
|
|
10
|
-
},
|
|
11
|
-
"status": "released",
|
|
12
|
-
"createdAt": "2026-07-20T00:00:00.000Z",
|
|
13
|
-
"updatedAt": "2026-07-20T00:00:00.000Z",
|
|
14
|
-
"expiresAt": null,
|
|
15
|
-
"releasedBy": {
|
|
16
|
-
"actorType": "main-session",
|
|
17
|
-
"actorId": null
|
|
18
|
-
},
|
|
19
|
-
"releasedAt": "2026-07-20T00:00:00.000Z",
|
|
20
|
-
"releaseReason": "template-initial-state",
|
|
21
|
-
"audit": [
|
|
22
|
-
{
|
|
23
|
-
"auditId": "audit-template",
|
|
24
|
-
"action": "released",
|
|
25
|
-
"actorType": "main-session",
|
|
26
|
-
"actorId": null,
|
|
27
|
-
"reason": "template-initial-state",
|
|
28
|
-
"at": "2026-07-20T00:00:00.000Z"
|
|
29
|
-
}
|
|
30
|
-
]
|
|
31
|
-
}
|
|
@@ -1,38 +0,0 @@
|
|
|
1
|
-
# 任务节点
|
|
2
|
-
|
|
3
|
-
- executionModel:shared-project-multi-conversation-runtime
|
|
4
|
-
- taskId:
|
|
5
|
-
- parentTaskId:null
|
|
6
|
-
- taskType:
|
|
7
|
-
- title:
|
|
8
|
-
- status:captured
|
|
9
|
-
- projectContextId:
|
|
10
|
-
- conversationBindingId:
|
|
11
|
-
- syncCheckId:
|
|
12
|
-
- taskLeaseId:
|
|
13
|
-
- requestFingerprint:
|
|
14
|
-
- idempotencyKey:
|
|
15
|
-
- requiredSkills:[]
|
|
16
|
-
- selectedSkills:[]
|
|
17
|
-
- skillRunIds:[]
|
|
18
|
-
- dependencies:[]
|
|
19
|
-
- permissionScope:[]
|
|
20
|
-
- confirmationStatus:not-requested
|
|
21
|
-
- expectedFiles:[]
|
|
22
|
-
- actualFiles:[]
|
|
23
|
-
- evidence:[]
|
|
24
|
-
- result:null
|
|
25
|
-
- nextAction:
|
|
26
|
-
- legacyRoleId:null
|
|
27
|
-
- createdAt:
|
|
28
|
-
- updatedAt:
|
|
29
|
-
|
|
30
|
-
## 需求和范围
|
|
31
|
-
|
|
32
|
-
## 影响范围
|
|
33
|
-
|
|
34
|
-
## Skill 阶段
|
|
35
|
-
|
|
36
|
-
## 验证与结果
|
|
37
|
-
|
|
38
|
-
## 未完成事项
|
|
@@ -1,23 +0,0 @@
|
|
|
1
|
-
{
|
|
2
|
-
"schemaVersion": 1,
|
|
3
|
-
"resultId": "result-template",
|
|
4
|
-
"taskId": "task-template",
|
|
5
|
-
"executionId": null,
|
|
6
|
-
"attempt": 1,
|
|
7
|
-
"status": "pending",
|
|
8
|
-
"upgradeStatus": "not-started",
|
|
9
|
-
"lockStatus": "released",
|
|
10
|
-
"businessCodeChanged": {
|
|
11
|
-
"value": "unknown",
|
|
12
|
-
"evidence": []
|
|
13
|
-
},
|
|
14
|
-
"steps": [],
|
|
15
|
-
"createdFiles": [],
|
|
16
|
-
"updatedFiles": [],
|
|
17
|
-
"skippedFiles": [],
|
|
18
|
-
"failedFiles": [],
|
|
19
|
-
"capabilities": [],
|
|
20
|
-
"sensitiveScanStatus": "not-checked",
|
|
21
|
-
"createdAt": "2026-07-20T00:00:00.000Z",
|
|
22
|
-
"updatedAt": "2026-07-20T00:00:00.000Z"
|
|
23
|
-
}
|
|
@@ -1,51 +0,0 @@
|
|
|
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
|
-
## Codex 角色会话绑定
|
|
13
|
-
|
|
14
|
-
- v1.7.3 起,在 Codex 宿主支持创建子会话时,主会话可以为五个默认角色自动创建真实角色子会话,并把真实 `sessionId` 回写到角色任务、`assignments.json`、`task-index.json`、`manifest.json`、`project-index.json` 和 `xinyun-ai/sessions/role-session-bindings.json`。
|
|
15
|
-
- 固定角色为 `project-owner`、`project-product`、`chief-engineer`、`programmer`、`test-reviewer`,不得因为初始化或升级创建超过 5 个角色会话。
|
|
16
|
-
- `sessionId` 必须来自 Codex 宿主返回值,不得使用任务 ID、随机占位字符串、本地文件名或历史会话记忆冒充。
|
|
17
|
-
- 会话绑定最小字段为 `taskId`、`roleId`、`sessionId`、`parentSessionId`、`provider`、`sessionStatus`、`createdAt`、`updatedAt`。
|
|
18
|
-
- 会话状态固定为 `pending/creating/created/onboarding/ready/blocked/failed/closed`。
|
|
19
|
-
- 创建成功后先进入 `onboarding`,只允许只读理解职责范围和项目资料;职责理解、确认关系和执行门禁满足后才允许 `ready`。
|
|
20
|
-
- Codex 宿主不支持创建子会话、权限不足或创建失败时,必须进入本地降级:保留 `sessionId=null`,记录 `sessionStatus=blocked/failed`、失败原因和下一步动作,不得伪造会话。
|
|
21
|
-
- v1.12.1 起,canonical 外部会话身份单独记录为 `providerSessionId`;必须有项目/角色/任务身份和真实发送/接收交互证据。普通线程 ID、标题或历史摘要不能直接绑定。
|
|
22
|
-
|
|
23
|
-
## 默认角色
|
|
24
|
-
|
|
25
|
-
- `project-owner`:项目负责人,负责需求最终确认、业务验收和发布授权。
|
|
26
|
-
- `project-product`:项目产品,负责需求整理、任务拆分和产品验收建议。
|
|
27
|
-
- `chief-engineer`:总工 / 技术负责人,负责技术方案、架构风险和技术最终确认。
|
|
28
|
-
- `programmer`:程序员,按确认范围执行代码、配置和测试任务。
|
|
29
|
-
- `test-reviewer`:测试审查员,独立测试、发布阻断判断和测试结论,不修改代码。
|
|
30
|
-
|
|
31
|
-
## 状态规则
|
|
32
|
-
|
|
33
|
-
- 角色生命周期:`unassigned`、`assigned`、`onboarding`、`ready`、`blocked`、`disabled`。
|
|
34
|
-
- 职责确认状态:`pending`、`confirmed`、`adjustment-required`。
|
|
35
|
-
- 任务分配状态:`pending`、`assigned`、`accepted`、`executing`、`paused`、`blocked`、`completed`、`cancelled`。
|
|
36
|
-
- `status=paused` 时必须填写 `pauseReason`,超范围统一使用 `pauseReason=out-of-scope`。
|
|
37
|
-
- `status=blocked` 时必须填写 `blockedReason`,确认人不可用为 `approver-unavailable`,成员冲突为 `member-conflict`。
|
|
38
|
-
- 执行人不得作为自己的技术最终确认人、业务最终确认人或发布授权人;冲突必须按 `memberId` 判断。
|
|
39
|
-
|
|
40
|
-
## 文件目录责任
|
|
41
|
-
|
|
42
|
-
任务开始前记录预计更新文件目录,任务完成后通过文件清单和 diff 只读核对实际更新文件目录。
|
|
43
|
-
|
|
44
|
-
发现实际修改超出预计目录时,任务必须设置:
|
|
45
|
-
|
|
46
|
-
```md
|
|
47
|
-
status=paused
|
|
48
|
-
pauseReason=out-of-scope
|
|
49
|
-
```
|
|
50
|
-
|
|
51
|
-
不得使用未定义状态 `paused-out-of-scope`。
|
|
@@ -1,49 +0,0 @@
|
|
|
1
|
-
{
|
|
2
|
-
"schemaVersion": 1,
|
|
3
|
-
"assignments": [],
|
|
4
|
-
"statusEnum": ["pending", "assigned", "accepted", "executing", "paused", "blocked", "completed", "cancelled"],
|
|
5
|
-
"pauseReasonEnum": ["out-of-scope", "awaiting-confirmation", "execution-failed", "user-requested"],
|
|
6
|
-
"blockedReasonEnum": ["approver-unavailable", "member-conflict"],
|
|
7
|
-
"memberConflictRule": "memberId must not equal technicalApproverMemberId, businessApproverMemberId, or publishAuthorizerMemberId.",
|
|
8
|
-
"recordContract": {
|
|
9
|
-
"requiredFields": [
|
|
10
|
-
"assignmentId",
|
|
11
|
-
"taskId",
|
|
12
|
-
"roleId",
|
|
13
|
-
"sessionId",
|
|
14
|
-
"providerSessionId",
|
|
15
|
-
"projectSessionId",
|
|
16
|
-
"hostThreadId",
|
|
17
|
-
"hostSessionId",
|
|
18
|
-
"orchestratorSessionId",
|
|
19
|
-
"projectRootHash",
|
|
20
|
-
"workspaceScope",
|
|
21
|
-
"repositoryScopeHash",
|
|
22
|
-
"identityMapping",
|
|
23
|
-
"identityEvidence",
|
|
24
|
-
"interactionEvidence",
|
|
25
|
-
"parentSessionId",
|
|
26
|
-
"provider",
|
|
27
|
-
"sessionStatus",
|
|
28
|
-
"memberId",
|
|
29
|
-
"workstream",
|
|
30
|
-
"scope",
|
|
31
|
-
"understandingRecordId",
|
|
32
|
-
"confirmationRecordId",
|
|
33
|
-
"reviewerMemberId",
|
|
34
|
-
"technicalApproverMemberId",
|
|
35
|
-
"businessApproverMemberId",
|
|
36
|
-
"publishAuthorizerMemberId",
|
|
37
|
-
"status",
|
|
38
|
-
"blockedReason",
|
|
39
|
-
"pauseReason",
|
|
40
|
-
"createdAt",
|
|
41
|
-
"updatedAt"
|
|
42
|
-
],
|
|
43
|
-
"pausedRule": "status=paused requires pauseReason; other statuses require pauseReason=null.",
|
|
44
|
-
"blockedRule": "status=blocked requires blockedReason=approver-unavailable or member-conflict.",
|
|
45
|
-
"executionEligibility": "member bound, role ready, sessionStatus=ready, responsibility confirmed, understanding ready, and executor memberId not equal to final approver member IDs.",
|
|
46
|
-
"sessionBindingRule": "providerSessionId must be a real host-returned value from the provider canonical API and pass create-or-reuse, send, receive, query-status, recover and close evidence. sessionId and projectSessionId remain null until then; once verified, sessionId equals providerSessionId. hostThreadId and hostSessionId are host mapping evidence, never substitutes for providerSessionId."
|
|
47
|
-
},
|
|
48
|
-
"updatedAt": ""
|
|
49
|
-
}
|
|
@@ -1,24 +0,0 @@
|
|
|
1
|
-
# 职责确认记录:chief-engineer
|
|
2
|
-
|
|
3
|
-
- schemaVersion:1
|
|
4
|
-
- recordId:confirmation-chief-engineer
|
|
5
|
-
- roleId:chief-engineer
|
|
6
|
-
- memberId:null
|
|
7
|
-
- status:pending
|
|
8
|
-
- responsibilityScope:技术方案、架构风险、技术最终确认
|
|
9
|
-
- readScope:architecture, api, database, git, workstreams, rules
|
|
10
|
-
- writeScope:xinyun-ai/global-review/, xinyun-ai/team/understandings/chief-engineer.md
|
|
11
|
-
- forbiddenActions:git-push, npm-publish, execute-sql-without-confirmation
|
|
12
|
-
- reviewerRoleId:test-reviewer
|
|
13
|
-
- technicalApproverRoleId:null
|
|
14
|
-
- businessApproverRoleId:project-owner
|
|
15
|
-
- publishAuthorizerRoleId:project-owner
|
|
16
|
-
- confirmedBy:null
|
|
17
|
-
- confirmedAt:null
|
|
18
|
-
- createdAt:2026-07-19T00:00:00.000Z
|
|
19
|
-
- updatedAt:2026-07-19T00:00:00.000Z
|
|
20
|
-
|
|
21
|
-
## 待确认
|
|
22
|
-
|
|
23
|
-
- 总工默认不设置技术确认候选,避免角色默认值自指。
|
|
24
|
-
- 总工为执行人时,不得回落为自己确认自己。
|
|
@@ -1,24 +0,0 @@
|
|
|
1
|
-
# 职责确认记录:programmer
|
|
2
|
-
|
|
3
|
-
- schemaVersion:1
|
|
4
|
-
- recordId:confirmation-programmer
|
|
5
|
-
- roleId:programmer
|
|
6
|
-
- memberId:null
|
|
7
|
-
- status:pending
|
|
8
|
-
- responsibilityScope:按确认范围执行代码、配置和测试任务
|
|
9
|
-
- readScope:assigned-workstream, framework-rules, entry-files, tests
|
|
10
|
-
- writeScope:confirmed-task-scope
|
|
11
|
-
- forbiddenActions:technical-final-approval, business-final-approval, publish-authorization, git-push, npm-publish
|
|
12
|
-
- reviewerRoleId:test-reviewer
|
|
13
|
-
- technicalApproverRoleId:chief-engineer
|
|
14
|
-
- businessApproverRoleId:project-owner
|
|
15
|
-
- publishAuthorizerRoleId:project-owner
|
|
16
|
-
- confirmedBy:null
|
|
17
|
-
- confirmedAt:null
|
|
18
|
-
- createdAt:2026-07-19T00:00:00.000Z
|
|
19
|
-
- updatedAt:2026-07-19T00:00:00.000Z
|
|
20
|
-
|
|
21
|
-
## 待确认
|
|
22
|
-
|
|
23
|
-
- 程序员不得担任技术最终确认人、业务最终确认人或发布授权人。
|
|
24
|
-
- 执行范围必须来自已确认任务单。
|
|
@@ -1,24 +0,0 @@
|
|
|
1
|
-
# 职责确认记录:project-owner
|
|
2
|
-
|
|
3
|
-
- schemaVersion:1
|
|
4
|
-
- recordId:confirmation-project-owner
|
|
5
|
-
- roleId:project-owner
|
|
6
|
-
- memberId:null
|
|
7
|
-
- status:pending
|
|
8
|
-
- responsibilityScope:需求最终确认、业务验收、发布授权
|
|
9
|
-
- readScope:requirements, delivery, release, business-acceptance
|
|
10
|
-
- writeScope:
|
|
11
|
-
- forbiddenActions:modify-business-code, execute-sql, git-push, npm-publish
|
|
12
|
-
- reviewerRoleId:test-reviewer
|
|
13
|
-
- technicalApproverRoleId:chief-engineer
|
|
14
|
-
- businessApproverRoleId:null
|
|
15
|
-
- publishAuthorizerRoleId:null
|
|
16
|
-
- confirmedBy:null
|
|
17
|
-
- confirmedAt:null
|
|
18
|
-
- createdAt:2026-07-19T00:00:00.000Z
|
|
19
|
-
- updatedAt:2026-07-19T00:00:00.000Z
|
|
20
|
-
|
|
21
|
-
## 待确认
|
|
22
|
-
|
|
23
|
-
- 需要绑定实际项目负责人或用户确认成员后才能进入 `confirmed`。
|
|
24
|
-
- 项目负责人 / 用户保留业务最终确认和发布授权。
|
|
@@ -1,24 +0,0 @@
|
|
|
1
|
-
# 职责确认记录:project-product
|
|
2
|
-
|
|
3
|
-
- schemaVersion:1
|
|
4
|
-
- recordId:confirmation-project-product
|
|
5
|
-
- roleId:project-product
|
|
6
|
-
- memberId:null
|
|
7
|
-
- status:pending
|
|
8
|
-
- responsibilityScope:需求整理、任务拆分、产品验收建议
|
|
9
|
-
- readScope:requirements, current-task, project-guide, business-notes
|
|
10
|
-
- writeScope:xinyun-ai/requirements/, xinyun-ai/current-task.md
|
|
11
|
-
- forbiddenActions:technical-final-approval, publish-authorization, git-push, npm-publish
|
|
12
|
-
- reviewerRoleId:test-reviewer
|
|
13
|
-
- technicalApproverRoleId:chief-engineer
|
|
14
|
-
- businessApproverRoleId:project-owner
|
|
15
|
-
- publishAuthorizerRoleId:project-owner
|
|
16
|
-
- confirmedBy:null
|
|
17
|
-
- confirmedAt:null
|
|
18
|
-
- createdAt:2026-07-19T00:00:00.000Z
|
|
19
|
-
- updatedAt:2026-07-19T00:00:00.000Z
|
|
20
|
-
|
|
21
|
-
## 待确认
|
|
22
|
-
|
|
23
|
-
- 项目产品不拥有技术最终确认权或发布授权权。
|
|
24
|
-
- 未绑定成员前不能领取需要执行权限的任务。
|
|
@@ -1,24 +0,0 @@
|
|
|
1
|
-
# 职责确认记录:test-reviewer
|
|
2
|
-
|
|
3
|
-
- schemaVersion:1
|
|
4
|
-
- recordId:confirmation-test-reviewer
|
|
5
|
-
- roleId:test-reviewer
|
|
6
|
-
- memberId:null
|
|
7
|
-
- status:pending
|
|
8
|
-
- responsibilityScope:独立测试、发布阻断判断、测试结论
|
|
9
|
-
- readScope:test-scenarios, acceptance-criteria, permissions, dangerous-actions
|
|
10
|
-
- writeScope:xinyun-ai/handoffs/, xinyun-ai/team/understandings/test-reviewer.md
|
|
11
|
-
- forbiddenActions:modify-business-code, execute-sql, git-push, npm-publish
|
|
12
|
-
- reviewerRoleId:null
|
|
13
|
-
- technicalApproverRoleId:chief-engineer
|
|
14
|
-
- businessApproverRoleId:project-owner
|
|
15
|
-
- publishAuthorizerRoleId:project-owner
|
|
16
|
-
- confirmedBy:null
|
|
17
|
-
- confirmedAt:null
|
|
18
|
-
- createdAt:2026-07-19T00:00:00.000Z
|
|
19
|
-
- updatedAt:2026-07-19T00:00:00.000Z
|
|
20
|
-
|
|
21
|
-
## 待确认
|
|
22
|
-
|
|
23
|
-
- 测试审查员只测试和输出结论,不直接修改代码。
|
|
24
|
-
- 发布阻断结论不等同于发布授权。
|
|
@@ -1,32 +0,0 @@
|
|
|
1
|
-
{
|
|
2
|
-
"schemaVersion": 1,
|
|
3
|
-
"ownerships": [],
|
|
4
|
-
"pathTypeEnum": ["file", "directory", "glob"],
|
|
5
|
-
"fileCategoryEnum": ["business-code", "control-file", "test", "config", "database", "api", "ui", "documentation", "generated"],
|
|
6
|
-
"pathRule": "path must be a forward-slash path relative to repoRoot and must not contain ..",
|
|
7
|
-
"recordContract": {
|
|
8
|
-
"requiredFields": [
|
|
9
|
-
"ownershipId",
|
|
10
|
-
"pathType",
|
|
11
|
-
"path",
|
|
12
|
-
"repoRoot",
|
|
13
|
-
"workstream",
|
|
14
|
-
"fileCategory",
|
|
15
|
-
"ownerRoleId",
|
|
16
|
-
"executorRoleId",
|
|
17
|
-
"reviewerRoleId",
|
|
18
|
-
"technicalApproverRoleId",
|
|
19
|
-
"businessApproverRoleId",
|
|
20
|
-
"createdAt",
|
|
21
|
-
"updatedAt"
|
|
22
|
-
],
|
|
23
|
-
"controlFiles": [
|
|
24
|
-
"xinyun-ai/team/**",
|
|
25
|
-
"xinyun-ai/current-task.md",
|
|
26
|
-
"xinyun-ai/index/session-current.md",
|
|
27
|
-
"xinyun-ai/handoffs/**"
|
|
28
|
-
],
|
|
29
|
-
"outOfScopeRule": "Actual diff outside expected paths requires status=paused and pauseReason=out-of-scope."
|
|
30
|
-
},
|
|
31
|
-
"updatedAt": ""
|
|
32
|
-
}
|
|
@@ -1,61 +0,0 @@
|
|
|
1
|
-
{
|
|
2
|
-
"schemaVersion": 1,
|
|
3
|
-
"members": [
|
|
4
|
-
{
|
|
5
|
-
"memberId": "member-project-owner",
|
|
6
|
-
"displayName": "项目负责人(待绑定)",
|
|
7
|
-
"memberType": "logical-slot",
|
|
8
|
-
"roleIds": ["project-owner"],
|
|
9
|
-
"personId": null,
|
|
10
|
-
"sessionId": null,
|
|
11
|
-
"status": "unassigned",
|
|
12
|
-
"createdAt": "",
|
|
13
|
-
"updatedAt": ""
|
|
14
|
-
},
|
|
15
|
-
{
|
|
16
|
-
"memberId": "member-project-product",
|
|
17
|
-
"displayName": "项目产品(待绑定)",
|
|
18
|
-
"memberType": "logical-slot",
|
|
19
|
-
"roleIds": ["project-product"],
|
|
20
|
-
"personId": null,
|
|
21
|
-
"sessionId": null,
|
|
22
|
-
"status": "unassigned",
|
|
23
|
-
"createdAt": "",
|
|
24
|
-
"updatedAt": ""
|
|
25
|
-
},
|
|
26
|
-
{
|
|
27
|
-
"memberId": "member-chief-engineer",
|
|
28
|
-
"displayName": "总工(待绑定)",
|
|
29
|
-
"memberType": "logical-slot",
|
|
30
|
-
"roleIds": ["chief-engineer"],
|
|
31
|
-
"personId": null,
|
|
32
|
-
"sessionId": null,
|
|
33
|
-
"status": "unassigned",
|
|
34
|
-
"createdAt": "",
|
|
35
|
-
"updatedAt": ""
|
|
36
|
-
},
|
|
37
|
-
{
|
|
38
|
-
"memberId": "member-programmer",
|
|
39
|
-
"displayName": "程序员(待绑定)",
|
|
40
|
-
"memberType": "logical-slot",
|
|
41
|
-
"roleIds": ["programmer"],
|
|
42
|
-
"personId": null,
|
|
43
|
-
"sessionId": null,
|
|
44
|
-
"status": "unassigned",
|
|
45
|
-
"createdAt": "",
|
|
46
|
-
"updatedAt": ""
|
|
47
|
-
},
|
|
48
|
-
{
|
|
49
|
-
"memberId": "member-test-reviewer",
|
|
50
|
-
"displayName": "测试审查员(待绑定)",
|
|
51
|
-
"memberType": "logical-slot",
|
|
52
|
-
"roleIds": ["test-reviewer"],
|
|
53
|
-
"personId": null,
|
|
54
|
-
"sessionId": null,
|
|
55
|
-
"status": "unassigned",
|
|
56
|
-
"createdAt": "",
|
|
57
|
-
"updatedAt": ""
|
|
58
|
-
}
|
|
59
|
-
],
|
|
60
|
-
"updatedAt": ""
|
|
61
|
-
}
|
|
@@ -1,81 +0,0 @@
|
|
|
1
|
-
{
|
|
2
|
-
"schemaVersion": 1,
|
|
3
|
-
"matrix": [
|
|
4
|
-
{
|
|
5
|
-
"matrixId": "matrix-project-owner",
|
|
6
|
-
"roleId": "project-owner",
|
|
7
|
-
"responsibilities": ["需求最终确认", "业务验收", "发布授权"],
|
|
8
|
-
"readScope": ["requirements", "delivery", "release", "business-acceptance"],
|
|
9
|
-
"writeScope": [],
|
|
10
|
-
"forbiddenActions": ["modify-business-code", "execute-sql", "git-push", "npm-publish"],
|
|
11
|
-
"reviewerRoleId": "test-reviewer",
|
|
12
|
-
"technicalApproverRoleId": "chief-engineer",
|
|
13
|
-
"businessApproverRoleId": null,
|
|
14
|
-
"publishAuthorizerRoleId": null,
|
|
15
|
-
"confirmationStatus": "pending",
|
|
16
|
-
"confirmedBy": null,
|
|
17
|
-
"confirmedAt": null
|
|
18
|
-
},
|
|
19
|
-
{
|
|
20
|
-
"matrixId": "matrix-project-product",
|
|
21
|
-
"roleId": "project-product",
|
|
22
|
-
"responsibilities": ["需求整理", "任务拆分", "产品验收建议"],
|
|
23
|
-
"readScope": ["requirements", "current-task", "project-guide"],
|
|
24
|
-
"writeScope": ["xinyun-ai/requirements/", "xinyun-ai/current-task.md"],
|
|
25
|
-
"forbiddenActions": ["technical-final-approval", "publish-authorization"],
|
|
26
|
-
"reviewerRoleId": "test-reviewer",
|
|
27
|
-
"technicalApproverRoleId": "chief-engineer",
|
|
28
|
-
"businessApproverRoleId": "project-owner",
|
|
29
|
-
"publishAuthorizerRoleId": "project-owner",
|
|
30
|
-
"confirmationStatus": "pending",
|
|
31
|
-
"confirmedBy": null,
|
|
32
|
-
"confirmedAt": null
|
|
33
|
-
},
|
|
34
|
-
{
|
|
35
|
-
"matrixId": "matrix-chief-engineer",
|
|
36
|
-
"roleId": "chief-engineer",
|
|
37
|
-
"responsibilities": ["技术方案", "架构风险", "技术最终确认"],
|
|
38
|
-
"readScope": ["architecture", "api", "database", "git", "workstreams", "rules"],
|
|
39
|
-
"writeScope": ["xinyun-ai/global-review/", "xinyun-ai/team/understandings/chief-engineer.md"],
|
|
40
|
-
"forbiddenActions": ["git-push", "npm-publish", "execute-sql-without-confirmation"],
|
|
41
|
-
"reviewerRoleId": "test-reviewer",
|
|
42
|
-
"technicalApproverRoleId": null,
|
|
43
|
-
"businessApproverRoleId": "project-owner",
|
|
44
|
-
"publishAuthorizerRoleId": "project-owner",
|
|
45
|
-
"confirmationStatus": "pending",
|
|
46
|
-
"confirmedBy": null,
|
|
47
|
-
"confirmedAt": null
|
|
48
|
-
},
|
|
49
|
-
{
|
|
50
|
-
"matrixId": "matrix-programmer",
|
|
51
|
-
"roleId": "programmer",
|
|
52
|
-
"responsibilities": ["按确认范围执行代码、配置和测试任务"],
|
|
53
|
-
"readScope": ["assigned-workstream", "framework-rules", "entry-files", "tests"],
|
|
54
|
-
"writeScope": ["confirmed-task-scope"],
|
|
55
|
-
"forbiddenActions": ["technical-final-approval", "business-final-approval", "publish-authorization"],
|
|
56
|
-
"reviewerRoleId": "test-reviewer",
|
|
57
|
-
"technicalApproverRoleId": "chief-engineer",
|
|
58
|
-
"businessApproverRoleId": "project-owner",
|
|
59
|
-
"publishAuthorizerRoleId": "project-owner",
|
|
60
|
-
"confirmationStatus": "pending",
|
|
61
|
-
"confirmedBy": null,
|
|
62
|
-
"confirmedAt": null
|
|
63
|
-
},
|
|
64
|
-
{
|
|
65
|
-
"matrixId": "matrix-test-reviewer",
|
|
66
|
-
"roleId": "test-reviewer",
|
|
67
|
-
"responsibilities": ["独立测试", "发布阻断判断", "测试结论"],
|
|
68
|
-
"readScope": ["test-scenarios", "acceptance-criteria", "permissions", "dangerous-actions"],
|
|
69
|
-
"writeScope": ["xinyun-ai/handoffs/", "xinyun-ai/team/understandings/test-reviewer.md"],
|
|
70
|
-
"forbiddenActions": ["modify-business-code", "execute-sql", "git-push", "npm-publish"],
|
|
71
|
-
"reviewerRoleId": null,
|
|
72
|
-
"technicalApproverRoleId": "chief-engineer",
|
|
73
|
-
"businessApproverRoleId": "project-owner",
|
|
74
|
-
"publishAuthorizerRoleId": "project-owner",
|
|
75
|
-
"confirmationStatus": "pending",
|
|
76
|
-
"confirmedBy": null,
|
|
77
|
-
"confirmedAt": null
|
|
78
|
-
}
|
|
79
|
-
],
|
|
80
|
-
"updatedAt": ""
|
|
81
|
-
}
|
|
@@ -1,71 +0,0 @@
|
|
|
1
|
-
{
|
|
2
|
-
"schemaVersion": 1,
|
|
3
|
-
"roles": [
|
|
4
|
-
{
|
|
5
|
-
"roleId": "project-owner",
|
|
6
|
-
"name": "项目负责人",
|
|
7
|
-
"roleType": "logical-role",
|
|
8
|
-
"lifecycleStatus": "unassigned",
|
|
9
|
-
"readScope": ["requirements", "delivery", "release", "business-acceptance"],
|
|
10
|
-
"writeScope": ["xinyun-ai/team/confirmations/project-owner.md"],
|
|
11
|
-
"forbiddenActions": ["modify-business-code", "execute-sql", "git-push", "npm-publish"],
|
|
12
|
-
"defaultReviewerRoleId": "test-reviewer",
|
|
13
|
-
"defaultTechnicalApproverRoleId": "chief-engineer",
|
|
14
|
-
"defaultBusinessApproverRoleId": null,
|
|
15
|
-
"defaultPublishAuthorizerRoleId": null
|
|
16
|
-
},
|
|
17
|
-
{
|
|
18
|
-
"roleId": "project-product",
|
|
19
|
-
"name": "项目产品",
|
|
20
|
-
"roleType": "logical-role",
|
|
21
|
-
"lifecycleStatus": "unassigned",
|
|
22
|
-
"readScope": ["requirements", "current-task", "project-guide", "business-notes"],
|
|
23
|
-
"writeScope": ["xinyun-ai/requirements/", "xinyun-ai/current-task.md", "xinyun-ai/team/understandings/project-product.md"],
|
|
24
|
-
"forbiddenActions": ["technical-final-approval", "publish-authorization", "git-push", "npm-publish"],
|
|
25
|
-
"defaultReviewerRoleId": "test-reviewer",
|
|
26
|
-
"defaultTechnicalApproverRoleId": "chief-engineer",
|
|
27
|
-
"defaultBusinessApproverRoleId": "project-owner",
|
|
28
|
-
"defaultPublishAuthorizerRoleId": "project-owner"
|
|
29
|
-
},
|
|
30
|
-
{
|
|
31
|
-
"roleId": "chief-engineer",
|
|
32
|
-
"name": "总工",
|
|
33
|
-
"roleType": "logical-role",
|
|
34
|
-
"lifecycleStatus": "unassigned",
|
|
35
|
-
"readScope": ["architecture", "api", "database", "git", "workstreams", "rules"],
|
|
36
|
-
"writeScope": ["xinyun-ai/team/understandings/chief-engineer.md", "xinyun-ai/global-review/"],
|
|
37
|
-
"forbiddenActions": ["git-push", "npm-publish", "execute-sql-without-confirmation"],
|
|
38
|
-
"defaultReviewerRoleId": "test-reviewer",
|
|
39
|
-
"defaultTechnicalApproverRoleId": null,
|
|
40
|
-
"defaultBusinessApproverRoleId": "project-owner",
|
|
41
|
-
"defaultPublishAuthorizerRoleId": "project-owner"
|
|
42
|
-
},
|
|
43
|
-
{
|
|
44
|
-
"roleId": "programmer",
|
|
45
|
-
"name": "程序员",
|
|
46
|
-
"roleType": "logical-role",
|
|
47
|
-
"lifecycleStatus": "unassigned",
|
|
48
|
-
"readScope": ["assigned-workstream", "framework-rules", "entry-files", "tests"],
|
|
49
|
-
"writeScope": ["confirmed-task-scope"],
|
|
50
|
-
"forbiddenActions": ["technical-final-approval", "business-final-approval", "publish-authorization", "git-push", "npm-publish"],
|
|
51
|
-
"defaultReviewerRoleId": "test-reviewer",
|
|
52
|
-
"defaultTechnicalApproverRoleId": "chief-engineer",
|
|
53
|
-
"defaultBusinessApproverRoleId": "project-owner",
|
|
54
|
-
"defaultPublishAuthorizerRoleId": "project-owner"
|
|
55
|
-
},
|
|
56
|
-
{
|
|
57
|
-
"roleId": "test-reviewer",
|
|
58
|
-
"name": "测试审查员",
|
|
59
|
-
"roleType": "logical-role",
|
|
60
|
-
"lifecycleStatus": "unassigned",
|
|
61
|
-
"readScope": ["test-scenarios", "acceptance-criteria", "permissions", "dangerous-actions"],
|
|
62
|
-
"writeScope": ["xinyun-ai/team/understandings/test-reviewer.md", "xinyun-ai/handoffs/"],
|
|
63
|
-
"forbiddenActions": ["modify-business-code", "execute-sql", "git-push", "npm-publish"],
|
|
64
|
-
"defaultReviewerRoleId": null,
|
|
65
|
-
"defaultTechnicalApproverRoleId": "chief-engineer",
|
|
66
|
-
"defaultBusinessApproverRoleId": "project-owner",
|
|
67
|
-
"defaultPublishAuthorizerRoleId": "project-owner"
|
|
68
|
-
}
|
|
69
|
-
],
|
|
70
|
-
"updatedAt": ""
|
|
71
|
-
}
|