@pm_zhousl/xinyun-ai-init 1.13.0 → 1.14.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 +2 -0
- package/init/xinyun-ai-init/README.md +8 -3
- package/init/xinyun-ai-init/rules/init-rules.md +13 -3
- package/init/xinyun-ai-init/rules/session-workbench.md +1 -1
- package/init/xinyun-ai-init/rules/upgrade-rules.md +3 -3
- package/init/xinyun-ai-init/rules/v1.10.2-contract.md +1 -1
- package/init/xinyun-ai-init/rules/v1.14.0-agent-core.md +31 -0
- package/init/xinyun-ai-init/templates/AGENTS.template.md +3 -3
- package/init/xinyun-ai-init/templates/agent-capabilities.template.json +27 -0
- package/init/xinyun-ai-init/templates/agent-profile.template.json +26 -0
- package/init/xinyun-ai-init/templates/control-plane-index.template.json +7 -0
- package/init/xinyun-ai-init/templates/coordination-change-ledger.template.json +2 -0
- package/init/xinyun-ai-init/templates/coordination-project-facts.template.json +9 -0
- package/init/xinyun-ai-init/templates/core-rules.template.md +12 -1
- package/init/xinyun-ai-init/templates/current-task.template.md +1 -1
- package/init/xinyun-ai-init/templates/database-authorization.template.json +15 -1
- package/init/xinyun-ai-init/templates/final-delivery.template.json +22 -0
- package/init/xinyun-ai-init/templates/handoff.template.json +32 -0
- package/init/xinyun-ai-init/templates/host-capabilities.template.json +2 -0
- package/init/xinyun-ai-init/templates/init-result.template.json +36 -2
- package/init/xinyun-ai-init/templates/manifest.template.json +40 -3
- package/init/xinyun-ai-init/templates/orchestrator.template.json +18 -0
- package/init/xinyun-ai-init/templates/preflight-report.template.json +17 -1
- package/init/xinyun-ai-init/templates/project-check.template.md +1 -1
- package/init/xinyun-ai-init/templates/project-guide.template.md +1 -1
- package/init/xinyun-ai-init/templates/project-index.template.json +32 -1
- package/init/xinyun-ai-init/templates/project-status.template.json +8 -0
- package/init/xinyun-ai-init/templates/provider-adapter.template.json +1 -1
- package/init/xinyun-ai-init/templates/role-execution.template.md +12 -0
- package/init/xinyun-ai-init/templates/role-session-binding.template.json +10 -3
- package/init/xinyun-ai-init/templates/takeover-gate.template.json +17 -0
- package/init/xinyun-ai-init/templates/task-graph.template.json +21 -0
- package/init/xinyun-ai-init/templates/task-index.template.json +6 -0
- package/init/xinyun-ai-init/templates/task-main.template.md +15 -0
- package/init/xinyun-ai-init/version.json +1 -1
- package/package.json +3 -1
- package/scripts/collect-v1.14-local-evidence.js +66 -0
- package/scripts/publish-with-token.ps1 +24 -1
- package/scripts/verify-init-package.js +62 -4
- package/scripts/verify-release-gate.js +97 -0
- package/scripts/verify-rules-package.js +75 -3
- package/test-scenarios/README.md +4 -0
- package/test-scenarios/review-template.md +10 -0
- package/test-scenarios/v1.13.0-behavior-evidence.json +1 -1
- package/test-scenarios/v1.14.0-behavior-evidence.json +780 -0
- package/test-scenarios/v1.14.0-scenarios.md +63 -0
- package/test-scenarios/v1.9.0-scenarios.md +1 -1
package/README.md
CHANGED
|
@@ -55,6 +55,7 @@ npm run publish:token
|
|
|
55
55
|
```
|
|
56
56
|
|
|
57
57
|
脚本会提示输入 npm token,临时写入 `.npmrc`,发布完成或失败后自动删除 `.npmrc`。
|
|
58
|
+
发布脚本会先执行 `npm run verify:release`;当前 v1.14 支持明确的 `local-degraded` 证据模式,允许发布规则包但不会把项目标记为 `ready`。
|
|
58
59
|
|
|
59
60
|
如果需要让 AI 代执行,可先在当前终端设置临时环境变量:
|
|
60
61
|
|
|
@@ -67,5 +68,6 @@ $env:NPM_TOKEN=$null
|
|
|
67
68
|
发布前预演:
|
|
68
69
|
|
|
69
70
|
```powershell
|
|
71
|
+
npm run verify:release
|
|
70
72
|
npm run publish:token:dry
|
|
71
73
|
```
|
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
|
|
3
3
|
本目录是“欣芸技术开发 Agent 流”的初始化包,负责把完整 AI 执行要求下发到目标项目。
|
|
4
4
|
|
|
5
|
-
当前规则版本:`1.
|
|
5
|
+
当前规则版本:`1.14.0`。
|
|
6
6
|
|
|
7
7
|
## Codex 一句话入口
|
|
8
8
|
|
|
@@ -22,6 +22,8 @@ v1.7.2 fixed task contract keys: `taskKind=initialization-main`, `taskKind=initi
|
|
|
22
22
|
v1.7.3 fixed Codex role session creation compatibility fields: `provider=codex`, `sessionStatus=pending/creating/created/onboarding/ready/blocked/failed/closed`, and legacy creation index `{taskId,roleId,provider,targetVersion}`. v1.10.x takeover gates are authoritative for project readiness.
|
|
23
23
|
v1.7.3 Codex role session orchestration is host-level only; CLI still only creates `xinyun-ai-init/`.
|
|
24
24
|
|
|
25
|
+
v1.14.0 adds the agent profile/capability declaration, aggregate takeover gate, orchestrator task graph, shared-fact handoffs, safe session naming/reuse, and final delivery gate. These controls are additive to v1.13.1; `providerSessionId` remains the only canonical provider identity in provider mode. When the host API is unavailable, `sessionIdentityMode=local-degraded` may use a control-plane `localSessionId` for local correlation only; it never makes the project `ready` or `executionEligible`.
|
|
26
|
+
|
|
25
27
|
执行上面的命令后,会生成 `xinyun-ai-init/`。随后让 AI 读取 `xinyun-ai-init/README.md` 即可。
|
|
26
28
|
|
|
27
29
|
## AI 执行入口
|
|
@@ -56,6 +58,9 @@ AI 读取本文件后,必须按以下方式执行:
|
|
|
56
58
|
26. 完成后用中文输出初始化或升级结果、项目导读、团队责任状态、任务状态、CodeGraph 状态、待确认问题和后续短指令。
|
|
57
59
|
27. v1.10.2 必须区分宿主线程、宿主会话、项目会话和主调度会话;真实 sessionId 只能来自宿主返回值,无法验证时保持 blocked。
|
|
58
60
|
28. v1.11.0 使用固定模板物化、阶段状态、项目快照、24 小时缓存和最多 3 个角色并发;缓存命中不能跳过必要会话、授权或最终门禁。
|
|
61
|
+
29. v1.14.0 必须创建或补齐智能体档案、能力矩阵、接管门禁、主会话总控、任务图、交接记录和最终交付记录;任务状态使用 v1.13 机器状态并同步中文展示状态。
|
|
62
|
+
30. v1.14.0 任务开始前读取公共快照、任务索引、近期变更、交接、契约和占用;任务结束后写回实际改动、跨任务影响、未完成事项和证据。
|
|
63
|
+
31. v1.14.0 只有所有接管门禁、真实 provider 会话证据、共享事实一致性、冲突检查、敏感扫描、测试和审查通过后才允许 `ready`;没有宿主 API 时可使用 `local-degraded` 与 `localSessionId` 继续控制面工作,但状态必须保持 `partial`、`blocked` 或 `manual-required`。
|
|
59
64
|
|
|
60
65
|
## 初始化授权边界
|
|
61
66
|
|
|
@@ -1137,7 +1142,7 @@ CodeGraph 唯一状态源为 `xinyun-ai/manifest.json` 的 `codeGraphRequired`
|
|
|
1137
1142
|
|
|
1138
1143
|
`projectStatus` 固定为 `not-started/initializing/partial/blocked/ready`。只有全部 `requiredGates` 通过且无高风险阻塞时才允许 `executionEligible=true`。缺少真实角色会话时必须 `blocked + blockedReason=required-role-session-not-created`,不得伪造 `sessionId`。
|
|
1139
1144
|
|
|
1140
|
-
Git none、无测试框架和工具链未检测只登记 `not-available/not-detected`、证据和 `unverifiedScope`,不伪造通过且不自动安装依赖。数据库默认 `authorization=not-requested`、`executionStatus=needs-confirmation`、`redactionStatus=verified
|
|
1145
|
+
Git none、无测试框架和工具链未检测只登记 `not-available/not-detected`、证据和 `unverifiedScope`,不伪造通过且不自动安装依赖。数据库默认 `authorization=not-requested`、`executionStatus=needs-confirmation`、`redactionStatus=verified`;普通初始化不扫描数据库文件。数据库相关任务只读项目内受限的 SQL/schema/migration/model 文本文件,不连接本地或线上数据库、不查询真实数据、不执行 SQL。所有敏感信息不得写入任务、日志、交接单、JSON、Markdown 或 stdout/stderr。
|
|
1141
1146
|
|
|
1142
1147
|
## v1.9 项目会话隔离、总工全景与数据库授权
|
|
1143
1148
|
|
|
@@ -1149,6 +1154,6 @@ Git none、无测试框架和工具链未检测只登记 `not-available/not-dete
|
|
|
1149
1154
|
|
|
1150
1155
|
总工维护 `xinyun-ai/technical-landscape.json`,主会话维护 `xinyun-ai/packets/requirement-packet.json`,总工返回 `xinyun-ai/packets/technical-impact-packet.json`。技术全景只有 `coverageStatus=full`、`unverifiedScope=[]` 且核心对象都有有效证据时才可 `ready`;`partial/unknown` 不得写成 ready。两个 packet 必须关联同一 requirementId、taskId、projectRootHash 和 version,使用 RFC 8785 JCS-SHA-256;关联内容变化时写入 `blockedReason=packet-stale` 并重新确认。
|
|
1151
1156
|
|
|
1152
|
-
|
|
1157
|
+
数据库正式模式为 `databaseAccessMode=local-files-read-only`,`legacyDatabaseAccessMode=sql-only` 仅为兼容标识;`sqlExecutionMode=generate-only`。只有数据库相关任务才读取项目内 `*.sql`、`*.ddl`、`*.schema`、`*.migration` 以及 `database/`、`migrations/`、`schema/`、`models/` 下的文本文件。严禁连接本地或线上数据库、打开 SQLite/数据库服务、查询真实数据、执行 SQL、migration、seed 或修改数据,也不自动安装驱动。连接、只读查询、结构变更和数据修改权限仍独立记录;四类授权状态固定为 `not-requested/requested/authorized/denied/expired/failed/unknown`,脱敏状态固定为 `verified/unverified/failed`。SQL 只作为 review 计划输出,需校验规范化 SQL、参数、方言、targetEnvironment、授权范围和 `statementHash`;授权过期或输入变化时回到 `executionStatus=needs-confirmation`,受影响授权进入 `expired` 并追加 audit。
|
|
1153
1158
|
|
|
1154
1159
|
v1.9 不自动复用其他项目会话、不自动连接或修改数据库、不扩大 HTML 迁移范围,不执行 Git 写操作或 npm publish。
|
|
@@ -77,6 +77,16 @@ Run the seven-capability host preflight before role sessions. Materialize the ma
|
|
|
77
77
|
- `businessCodeChanged.value=no` requires structured evidence; without evidence it must be `unknown`. Missing real behavior evidence cannot produce `ready`.
|
|
78
78
|
- v1.11 stages are `preflight`, `fixed-materialization`, `control-plane`, `codegraph`, `bootstrap-snapshot`, `role-sessions`, `onboarding`, and `final-gate`. Fixed templates, a bounded project snapshot, a 24-hour cache, and at most three role sessions may reduce repeated work but cannot bypass the final gate.
|
|
79
79
|
|
|
80
|
+
## v1.14.0 agent core
|
|
81
|
+
|
|
82
|
+
- Create `agent-profile.json`, `agent-capabilities.json`, `takeover-gate.json`, `tasks/orchestrator.json`, `tasks/task-graph.json`, `handoffs/` and `final-delivery.json` as control-plane records.
|
|
83
|
+
- Agent capability status is `ready/partial/blocked/manual-required`; missing provider evidence or unresolved required gates cannot be `ready`.
|
|
84
|
+
- The orchestrator owns requirement understanding, task decomposition, assignment, dependencies, result aggregation, conflict routing, test review and final delivery. Task creation is not task completion.
|
|
85
|
+
- Task records retain v1.13 machine statuses and add `statusCode`/`statusLabel`; the display labels are `待分析/待分配/执行中/待审查/待确认/已完成/阻塞/已取消`.
|
|
86
|
+
- Before execution, read the shared snapshot, active task index, recent changes, handoffs, contract snapshots and occupancy. After execution, write actual files, API/field/component/process impacts, unfinished work and evidence.
|
|
87
|
+
- Same-file, API, field, component or business-flow conflicts pause the affected task and require orchestrator/chief-engineer resolution.
|
|
88
|
+
- Final delivery must list completed, unfinished, blocked, changed files, business-code change status, tests, review, risks and next actions. Only all gates and evidence may produce `ready`.
|
|
89
|
+
|
|
80
90
|
## v1.7.2 角色后续任务可见性
|
|
81
91
|
|
|
82
92
|
- 初始化主任务使用 `taskKind=initialization-main`;角色登记使用 `taskKind=initialization-record`;后续执行任务使用 `taskKind=role-execution`。
|
|
@@ -111,7 +121,7 @@ Run the seven-capability host preflight before role sessions. Materialize the ma
|
|
|
111
121
|
- 接管基线记录业务文件哈希、控制文件哈希、未提交 Git、已有任务/会话和旧 AI 文档。旧沉淀必须分类为 adopted/pending-confirmation/not-adopted,敏感原文不得落盘。
|
|
112
122
|
- 五个角色和主任务必须有父子任务、状态、下一步和真实 sessionId;缺失角色会话固定 `blockedReason=required-role-session-not-created`,不得伪造 sessionId。
|
|
113
123
|
- `projectStatus` 只有在所有 requiredGates 通过、敏感扫描通过且无高风险阻塞时才可为 ready;executionEligible 必须同时为 true。
|
|
114
|
-
- Git none、无测试框架、工具链未检测只记录 not-available/not-detected 和 unverifiedScope;数据库默认 `authorization=not-requested`、`executionStatus=needs-confirmation`、`redactionStatus=verified
|
|
124
|
+
- Git none、无测试框架、工具链未检测只记录 not-available/not-detected 和 unverifiedScope;数据库默认 `authorization=not-requested`、`executionStatus=needs-confirmation`、`redactionStatus=verified`。普通初始化不扫描数据库文件;数据库相关任务仅只读项目内 SQL/schema/migration/model 文本,不连接本地或线上数据库、不查询真实数据、不执行 SQL。
|
|
115
125
|
|
|
116
126
|
## v1.9 初始化项目身份与联合门禁
|
|
117
127
|
|
|
@@ -119,7 +129,7 @@ Run the seven-capability host preflight before role sessions. Materialize the ma
|
|
|
119
129
|
|
|
120
130
|
会话候选状态固定为 `reusable/renamed/duplicate-not-primary/other-project/unknown/not-reusable/requires-confirmation`,只有 reusable 或有完整改名 audit 的 renamed 才能绑定。其他项目会话不得展示或复用,中文展示名使用项目简称、角色中文名和职责名称。
|
|
121
131
|
|
|
122
|
-
技术全景只有 full coverage、空 unverifiedScope 和核心证据完整时才可 ready;partial/unknown 不得 ready。requirementPacket 与 technicalImpactPacket 必须同项目、task、版本和 hash;失效时进入 `packet-stale`
|
|
123
|
-
- v1.9 fields: `sessionMatchStatus`、`selectionEvidence`、`项目简称|角色中文名|职责名称`、`coverageStatus=full`、`databaseAccessMode=sql-only`、`targetEnvironment`。
|
|
132
|
+
技术全景只有 full coverage、空 unverifiedScope 和核心证据完整时才可 ready;partial/unknown 不得 ready。requirementPacket 与 technicalImpactPacket 必须同项目、task、版本和 hash;失效时进入 `packet-stale` 并阻断执行。数据库正式为 `local-files-read-only`,`sql-only` 仅为兼容标识;只读本地数据库相关文本文件,SQL 仅生成供审阅,连接、查询、结构变更和数据修改均禁止,每条 SQL 必须校验 statementHash 和目标环境。
|
|
133
|
+
- v1.9 fields: `sessionMatchStatus`、`selectionEvidence`、`项目简称|角色中文名|职责名称`、`coverageStatus=full`、`databaseAccessMode=local-files-read-only`、`legacyDatabaseAccessMode=sql-only`、`targetEnvironment`。
|
|
124
134
|
|
|
125
135
|
共享事实和 Skill 文件使用临时文件、完整校验和原子重命名。前端审计默认只读;临时会话只有用户确认的代码任务才可创建。不得修改业务代码、数据库、API、依赖、Git 或发布配置。
|
|
@@ -319,5 +319,5 @@ Record all seven host capabilities before role sessions. `available-with-depende
|
|
|
319
319
|
|
|
320
320
|
总工交接必须引用 technical-landscape、requirementPacket 和 technicalImpactPacket 的 ID、版本、sourceRevision 和 RFC8785 JCS-SHA-256 hash;任一 hash 失效时状态为 blocked、原因 packet-stale。技术全景 partial/unknown 不得写为 ready。
|
|
321
321
|
|
|
322
|
-
数据库交接必须记录 `databaseAccessMode=sql-only`、四类授权、授权状态 `not-requested/requested/authorized/denied/expired/failed/unknown`、`statementHash`、targetEnvironment、`executionStatus`、`redactionStatus=verified/unverified/failed` 和完整 audit;授权变化后不得继续执行旧 SQL,执行状态回到 `needs-confirmation`。
|
|
322
|
+
数据库交接必须记录 `databaseAccessMode=local-files-read-only`、`legacyDatabaseAccessMode=sql-only`、`sqlExecutionMode=generate-only`、四类授权、授权状态 `not-requested/requested/authorized/denied/expired/failed/unknown`、`statementHash`、targetEnvironment、`executionStatus`、`redactionStatus=verified/unverified/failed` 和完整 audit。仅允许按需读取本地 SQL/schema/migration/model 文本文件,严禁连接数据库或执行 SQL;授权变化后不得继续执行旧 SQL,执行状态回到 `needs-confirmation`。
|
|
323
323
|
- v1.9 fields: `lexical-fallback`、`duplicate-not-primary`、`项目简称|角色中文名|职责名称`、`coverageStatus=full`、`RFC 8785 JCS-SHA-256`。
|
|
@@ -139,13 +139,13 @@ Before upgrade role-session work, read `xinyun-ai/index/initialization-recovery.
|
|
|
139
139
|
- 升级时不得读取未注册的 `codegraph-status.json`;统一从 manifest 的 `codeGraphRequired` 恢复,并校验 project-index、preflight、onboarding、current-task、init-result 的 codeGraphRecordId 和摘要一致。
|
|
140
140
|
- `available-with-dependency` 必须等待依赖授权;必要能力处于 unknown、unavailable、permission-denied、failed、not-checked、not-verified 或依赖未授权时保持 blocked/partial,不得 ready。
|
|
141
141
|
- Git none、测试框架未发现和工具链未检测不单独阻塞,但必须写入 status、evidence 和 unverifiedScope;禁止自动安装依赖。
|
|
142
|
-
- 数据库状态升级默认保持 `not-requested/needs-confirmation/verified
|
|
142
|
+
- 数据库状态升级默认保持 `not-requested/needs-confirmation/verified`;普通升级不扫描数据库文件,数据库相关任务只读本地 SQL/schema/migration/model 文本。没有新授权不得连接本地或线上数据库、查询真实数据、执行 SQL、migration、seed 或修改数据。
|
|
143
143
|
|
|
144
144
|
## v1.9 升级兼容与失效处理
|
|
145
145
|
|
|
146
146
|
升级前按当前项目身份的 realpath/lexical-fallback 结果计算 projectRootHash,按排序 repository scope 计算 repositoryScopeHash。只有八字段身份/任务键、权限和 RFC8785 JCS-SHA-256 复用键一致时复用会话;其他项目、重复非主会话和身份未知会话不得复用。保留 v1.7.3 sessionId、旧创建索引、v1.8 共享事实和双会话文件契约。
|
|
147
147
|
|
|
148
|
-
技术全景、requirementPacket 或 technicalImpactPacket 的 contentHash、版本、项目身份或 sourceRevision 变化时,相关任务进入 blocked + blockedReason=packet-stale,不得静默使用旧结果。数据库默认仍为 sql-only
|
|
149
|
-
- v1.9 fields: `sessionMatchStatus`、`duplicate-not-primary`、`selectionEvidence`、`项目简称|角色中文名|职责名称`、`technical-landscape`、`coverageStatus=full`、`RFC 8785 JCS-SHA-256`、`databaseAccessMode=sql-only`、`targetEnvironment`。
|
|
148
|
+
技术全景、requirementPacket 或 technicalImpactPacket 的 contentHash、版本、项目身份或 sourceRevision 变化时,相关任务进入 blocked + blockedReason=packet-stale,不得静默使用旧结果。数据库默认仍为 local-files-read-only(sql-only 仅为兼容标识),授权、目标环境、参数、方言或 statementHash 变化时追加 audit 并回到 needs-confirmation。
|
|
149
|
+
- v1.9 fields: `sessionMatchStatus`、`duplicate-not-primary`、`selectionEvidence`、`项目简称|角色中文名|职责名称`、`technical-landscape`、`coverageStatus=full`、`RFC 8785 JCS-SHA-256`、`databaseAccessMode=local-files-read-only`、`legacyDatabaseAccessMode=sql-only`、`targetEnvironment`。
|
|
150
150
|
|
|
151
151
|
同一 taskId + changeDomain 不得重复创建临时会话;容量不足进入 `queued`,unknown occupancy 保持占用,失败不得自动重试。升级不自动安装 Skill 依赖,不执行业务代码、数据库、API 或 Git 写操作。
|
|
@@ -27,4 +27,4 @@ An illegal combination is `blocked`, stops further writes, and creates a recover
|
|
|
27
27
|
|
|
28
28
|
The project cannot become `ready` until the orchestrator and all five required role sessions have valid identity evidence, authorization, onboarding, and execution eligibility. Missing host capability stays `blocked`; local degradation may document the task but cannot authorize business-code execution or invent a session ID.
|
|
29
29
|
|
|
30
|
-
Database access
|
|
30
|
+
Database access is `local-files-read-only`; `sql-only` is a legacy compatibility label. Read only database-related SQL/schema/migration/model text files for database-related tasks. Without explicit user authorization, output SQL and a plan only; never connect to a local or online database, open a database driver, install a driver, query real data, or execute a statement.
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
# v1.14.0 agent core
|
|
2
|
+
|
|
3
|
+
## Agent identity and capability declaration
|
|
4
|
+
|
|
5
|
+
Every initialized control plane records one `agent-profile.json` and one `agent-capabilities.json`. The profile identifies the agent, package version, project identity, service goal, configured roles, supported stacks/tools, allowed operations, forbidden operations, and ready prerequisites. Capability records must include detection method, status, dependency status, evidence, fallback plan, and unverified scope.
|
|
6
|
+
|
|
7
|
+
When the host does not expose a canonical provider API, the control plane may use `sessionIdentityMode=local-degraded` and a control-plane-generated `localSessionId` for local correlation. `localSessionId` is never a provider identity, never makes `sessionId` non-null, and never grants `ready` or `executionEligible`. Real provider mode continues to require `providerSessionId` and the v1.13 host evidence contract.
|
|
8
|
+
|
|
9
|
+
Agent capability status is `ready`, `partial`, `blocked`, or `manual-required`. Missing canonical provider evidence, unknown required host capability, or an unresolved high-risk conflict cannot be `ready`.
|
|
10
|
+
|
|
11
|
+
## Takeover gate
|
|
12
|
+
|
|
13
|
+
`takeover-gate.json` is the aggregate decision for project control-plane readiness. It must verify the control plane, named main task, five role tasks, team responsibility records, CodeGraph status, provider session bindings, orchestrator registration, recovery records, indexes, shared facts, conflict checks, and sensitive scanning. Missing evidence produces `partial`, `blocked`, or `manual-required`; it never produces `ready`. Local-degraded operation may publish the package and continue read-only control-plane work, but the project remains non-ready until real provider evidence is bound.
|
|
14
|
+
|
|
15
|
+
## Orchestrator and task graph
|
|
16
|
+
|
|
17
|
+
The main session owns requirement understanding, task decomposition, role assignment, dependency management, result aggregation, conflict routing, test review, and final delivery. `orchestrator.json` stores its identity and evidence. `task-graph.json` stores nodes and dependency edges.
|
|
18
|
+
|
|
19
|
+
Task records keep the v1.13 machine status and add `statusCode`/`statusLabel` for the unified workflow: `待分析`, `待分配`, `执行中`, `待审查`, `待确认`, `已完成`, `阻塞`, `已取消`. A task is complete only after its result, evidence, reviewer, and required write-backs pass validation.
|
|
20
|
+
|
|
21
|
+
## Shared facts and handoff
|
|
22
|
+
|
|
23
|
+
Before execution, read the public project snapshot, active task index, recent change ledger, other handoffs, API/database/component records, and file/workflow occupancy. After execution, write back actual files and impacts, unfinished work, confirmations, evidence, and the next action. Same-file, API, field, component, or business-flow conflicts pause the task and require orchestrator/chief-engineer resolution.
|
|
24
|
+
|
|
25
|
+
## Session naming and reuse
|
|
26
|
+
|
|
27
|
+
Display names follow `项目名|角色|职责或工作流`. Discovery and reuse require matching project identity, role, task scope, title, cwd, occupancy, idempotency key, and canonical `providerSessionId` evidence. Cross-project candidates are rejected and historical records are preserved. Host thread IDs, task IDs, filenames, titles, and history summaries remain evidence only and can never become a session ID.
|
|
28
|
+
|
|
29
|
+
## Final delivery gate
|
|
30
|
+
|
|
31
|
+
The final delivery record must list completed and unfinished work, blocked tasks, actual changed files, business-code change status, tests, review results, risks, next actions, and all gate/evidence references. `ready` requires every required gate, provider evidence, shared-fact consistency, conflict check, sensitive scan, and reviewer result to pass.
|
|
@@ -221,7 +221,7 @@ AI 接手本项目时,请先读取:
|
|
|
221
221
|
- `projectStatus` 固定为 `not-started/initializing/partial/blocked/ready`;只有身份、CodeGraph、基线、团队、任务、控制面、旧沉淀、宿主能力、敏感扫描和无高风险阻塞全部通过,才允许 `ready` 和 `executionEligible=true`。
|
|
222
222
|
- 初始化冲突、旧任务、锁异常或用户修改控制文件时必须暂停/阻塞,不覆盖、不强制解锁;所有控制面写入使用临时文件、原子重命名、revision、幂等和恢复记录。
|
|
223
223
|
- Git none、无测试框架和未检测到工具链只记录 `not-available/not-detected` 及未验证范围,不得伪造通过,也不得自动安装依赖。
|
|
224
|
-
- 数据库初始化固定为 `authorization=not-requested`、`executionStatus=needs-confirmation`、`redactionStatus=verified
|
|
224
|
+
- 数据库初始化固定为 `authorization=not-requested`、`executionStatus=needs-confirmation`、`redactionStatus=verified`;普通初始化不扫描数据库文件。数据库相关任务仅只读项目内 SQL/schema/migration/model 文本,未经明确授权不得连接本地或线上数据库、查询真实数据或执行 SQL,只输出 SQL 计划。
|
|
225
225
|
|
|
226
226
|
## v1.9 当前项目会话隔离与联合门禁
|
|
227
227
|
|
|
@@ -230,8 +230,8 @@ AI 接手本项目时,请先读取:
|
|
|
230
230
|
- 其他项目会话不得展示完整路径、任务内容或 sessionId;重复会话保留历史,只选择一个主会话。中文标题使用 `项目简称|角色中文名|职责名称`。
|
|
231
231
|
- 总工维护 `technical-landscape.json`,主会话维护 `requirement-packet.json`,总工输出 `technical-impact-packet.json`。技术全景只有 full coverage、空 unverifiedScope 和完整核心证据才可 ready;partial/unknown 不得 ready。
|
|
232
232
|
- 两个 packet 必须同 requirementId、taskId、projectRootHash、version,并使用 RFC8785 JCS-SHA-256。关联内容变化后进入 `blockedReason=packet-stale`,程序员不得执行。
|
|
233
|
-
- 数据库默认 `sql-only`;连接、查询、结构变更、数据修改分别授权,四类授权状态固定为 `not-requested/requested/authorized/denied/expired/failed/unknown`,`redactionStatus` 固定为 `verified/unverified/failed
|
|
234
|
-
- v1.9 fields: `selectionEvidence`、`coverageStatus=full`、`RFC 8785 JCS-SHA-256`、`databaseAccessMode=sql-only`。
|
|
233
|
+
- 数据库默认 `databaseAccessMode=local-files-read-only`,`sql-only` 仅为兼容标识,`sqlExecutionMode=generate-only`;连接、查询、结构变更、数据修改分别授权,四类授权状态固定为 `not-requested/requested/authorized/denied/expired/failed/unknown`,`redactionStatus` 固定为 `verified/unverified/failed`。数据库相关任务只读本地 SQL/schema/migration/model 文本,严禁连接数据库、查询真实数据或执行 SQL。每条 SQL 仅作为 review 计划,需校验规范化 `statementHash`、targetEnvironment 和权限状态,过期或变化必须进入 `needs-confirmation` 并追加 audit。
|
|
234
|
+
- v1.9 fields: `selectionEvidence`、`coverageStatus=full`、`RFC 8785 JCS-SHA-256`、`databaseAccessMode=local-files-read-only`、`legacyDatabaseAccessMode=sql-only`。
|
|
235
235
|
## v1.7 machine-readable enum anchors
|
|
236
236
|
|
|
237
237
|
- decision=direct-map/rewrite-required/backend-required/unsupported/pending/unknown
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
{
|
|
2
|
+
"schemaVersion": 1,
|
|
3
|
+
"agentId": "xinyun-ai-agent",
|
|
4
|
+
"capabilities": [
|
|
5
|
+
{
|
|
6
|
+
"capabilityId": "capability-template",
|
|
7
|
+
"name": "能力模板",
|
|
8
|
+
"category": "control-plane",
|
|
9
|
+
"required": true,
|
|
10
|
+
"detectionMethod": "not-checked",
|
|
11
|
+
"status": "unknown",
|
|
12
|
+
"statusEnum": ["ready", "partial", "blocked", "manual-required", "unknown"],
|
|
13
|
+
"dependencyStatus": "unknown",
|
|
14
|
+
"evidence": [],
|
|
15
|
+
"fallbackPlan": "blocked; preserve task IDs and emit next action",
|
|
16
|
+
"usedTools": [],
|
|
17
|
+
"unusedTools": [],
|
|
18
|
+
"unverifiedScope": [],
|
|
19
|
+
"failureReason": null,
|
|
20
|
+
"checkedAt": null
|
|
21
|
+
}
|
|
22
|
+
],
|
|
23
|
+
"aggregateStatus": "manual-required",
|
|
24
|
+
"aggregateStatusEnum": ["ready", "partial", "blocked", "manual-required"],
|
|
25
|
+
"aggregateRule": "required capabilities and evidence must pass before ready; local-degraded may run with localSessionId but remains manual-required",
|
|
26
|
+
"updatedAt": null
|
|
27
|
+
}
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
{
|
|
2
|
+
"schemaVersion": 1,
|
|
3
|
+
"agentId": "xinyun-ai-agent",
|
|
4
|
+
"name": "欣芸技术开发 Agent",
|
|
5
|
+
"version": "1.14.0",
|
|
6
|
+
"packageVersion": "1.14.0",
|
|
7
|
+
"projectIdentity": {
|
|
8
|
+
"projectRootHash": null,
|
|
9
|
+
"workspaceScope": "xinyun-ai-control",
|
|
10
|
+
"repositoryScopeHash": null,
|
|
11
|
+
"workstream": "project-control-plane"
|
|
12
|
+
},
|
|
13
|
+
"serviceGoal": "按用户确认的范围协作完成软件开发任务并提供可审计交付结论",
|
|
14
|
+
"configuredRoles": ["project-owner", "project-product", "chief-engineer", "programmer", "test-reviewer"],
|
|
15
|
+
"supportedStacks": [],
|
|
16
|
+
"supportedTools": [],
|
|
17
|
+
"allowedOperations": ["read-project-files", "write-control-plane", "run-approved-verification"],
|
|
18
|
+
"forbiddenOperations": ["fake-session-id", "database-connection", "sql-execution", "business-code-without-confirmation", "git-write", "dependency-install", "host-login", "npm-publish"],
|
|
19
|
+
"readyPrerequisites": ["control-plane", "task-tree", "team-responsibility", "codegraph", "provider-session-evidence", "orchestrator", "recovery-and-index-consistency", "sensitive-scan", "conflict-free"],
|
|
20
|
+
"capabilityStatus": "manual-required",
|
|
21
|
+
"capabilityStatusEnum": ["ready", "partial", "blocked", "manual-required"],
|
|
22
|
+
"evidence": [],
|
|
23
|
+
"unverifiedScope": ["real provider canonical session behavior"],
|
|
24
|
+
"createdAt": null,
|
|
25
|
+
"updatedAt": null
|
|
26
|
+
}
|
|
@@ -6,6 +6,13 @@
|
|
|
6
6
|
"sessionIndex": "xinyun-ai/sessions/role-session-bindings.json",
|
|
7
7
|
"roleIndex": "xinyun-ai/team/assignments.json",
|
|
8
8
|
"factIndex": "xinyun-ai/coordination/project-facts.json",
|
|
9
|
+
"agentProfile": "xinyun-ai/agent-profile.json",
|
|
10
|
+
"agentCapabilities": "xinyun-ai/agent-capabilities.json",
|
|
11
|
+
"takeoverGate": "xinyun-ai/takeover-gate.json",
|
|
12
|
+
"orchestrator": "xinyun-ai/tasks/orchestrator.json",
|
|
13
|
+
"taskGraph": "xinyun-ai/tasks/task-graph.json",
|
|
14
|
+
"handoffsDirectory": "xinyun-ai/handoffs/",
|
|
15
|
+
"finalDelivery": "xinyun-ai/final-delivery.json",
|
|
9
16
|
"evidenceIndex": "xinyun-ai/index/evidence-index.json",
|
|
10
17
|
"eventLog": "xinyun-ai/events/events.jsonl",
|
|
11
18
|
"lockFile": "xinyun-ai/task-lock.json",
|
|
@@ -1,6 +1,8 @@
|
|
|
1
1
|
{
|
|
2
2
|
"schemaVersion": 1,
|
|
3
3
|
"changes": [],
|
|
4
|
+
"occupancy": [],
|
|
5
|
+
"conflictKeys": ["path", "api", "database-field", "component", "business-flow"],
|
|
4
6
|
"recordContract": {
|
|
5
7
|
"requiredFields": ["schemaVersion", "changeId", "taskId", "sessionId", "actor", "role", "changeDomain", "targetPaths", "baselineHash", "changeStatus", "evidence", "createdAt", "updatedAt"],
|
|
6
8
|
"changeStatusEnum": ["proposed", "reserved", "in-progress", "completed", "conflict-pending", "blocked", "cancelled"],
|
|
@@ -1,6 +1,15 @@
|
|
|
1
1
|
{
|
|
2
2
|
"schemaVersion": 1,
|
|
3
3
|
"facts": [],
|
|
4
|
+
"publicSnapshot": {
|
|
5
|
+
"snapshotId": null,
|
|
6
|
+
"snapshotHash": null,
|
|
7
|
+
"sourceRevision": null,
|
|
8
|
+
"refreshedAt": null,
|
|
9
|
+
"refreshTriggers": ["business-change", "control-plane-change", "codegraph-change", "source-revision-change"]
|
|
10
|
+
},
|
|
11
|
+
"executionReadContract": ["publicSnapshot", "taskIndex", "recentChanges", "handoffs", "contractSnapshots", "occupancy"],
|
|
12
|
+
"executionWriteContract": ["changedFiles", "apiChanges", "databaseFieldChanges", "componentChanges", "businessFlowChanges", "unfinishedWork", "pendingConfirmations", "evidence"],
|
|
4
13
|
"recordContract": {
|
|
5
14
|
"requiredFields": ["schemaVersion", "factId", "factType", "scope", "valueHash", "source", "taskId", "sessionId", "evidence", "confidence", "factStatus", "revision", "observedAt", "updatedAt"],
|
|
6
15
|
"factStatusEnum": ["proposed", "confirmed", "superseded", "unknown", "blocked"]
|
|
@@ -616,7 +616,18 @@ Skill 分配使用 `assignmentStatus`,使用记录使用 `usageStatus`。固
|
|
|
616
616
|
|
|
617
617
|
初始化结果必须按 before/after hash 区分 `initialization-created`、`initialization-updated`、`pre-existing-user-change` 和 `control-plane-only`;不得回滚或归因用户已有业务改动。
|
|
618
618
|
|
|
619
|
-
|
|
619
|
+
数据库正式 databaseAccessMode=local-files-read-only,legacyDatabaseAccessMode=sql-only 仅为兼容标识,sqlExecutionMode=generate-only。普通初始化不读取数据库文件;数据库相关任务仅可读取项目内受限的 SQL/schema/migration/model 文本文件。严禁连接本地或线上数据库、查询真实数据、执行 SQL、migration、seed 或数据修改。连接、只读查询、结构变更、数据修改分别授权,四类授权状态固定为 not-requested/requested/authorized/denied/expired/failed/unknown,redactionStatus 固定为 verified/unverified/failed;SQL 仅用于 review 计划,需校验规范化 SQL、参数、方言、targetEnvironment、授权范围生成的 statementHash。授权或输入变化时回到 needs-confirmation,并追加包含 auditId、action、actorType、actorId、authorizationType、statementHash、targetEnvironment、resultStatus、redactionStatus、evidence、at 的 audit。
|
|
620
|
+
|
|
621
|
+
## v1.14.0 智能体核心能力
|
|
622
|
+
|
|
623
|
+
- 必须登记 `agent-profile.json` 和 `agent-capabilities.json`。智能体状态固定为 `ready/partial/blocked/manual-required`;宿主 canonical provider 证据缺失时不得 ready。宿主 API 不可用时允许显式 `sessionIdentityMode=local-degraded`,使用控制面生成的 `localSessionId` 做本地关联,但不得把它写入 `providerSessionId` 或把项目标记为 ready。
|
|
624
|
+
- 必须登记 `takeover-gate.json`、`tasks/orchestrator.json`、`tasks/task-graph.json`、`handoffs/` 和 `final-delivery.json`,并在 manifest、project-index、init-result 和 control-plane-index 中引用。
|
|
625
|
+
- 主会话负责需求理解、任务拆分、角色分配、依赖管理、结果汇总、冲突处理、测试审查和最终交付;任务创建不等于任务完成。
|
|
626
|
+
- 任务保留既有机器状态,并同步 `statusCode/statusLabel`:`待分析/待分配/执行中/待审查/待确认/已完成/阻塞/已取消`。
|
|
627
|
+
- 任务开始前必须读取公共快照、活动任务索引、近期变更、其他交接、契约快照和文件/工作流占用;完成后必须写回实际文件、API/字段/组件/流程影响、未完成事项、待确认项和证据。
|
|
628
|
+
- 同文件、接口、字段、组件或业务流程冲突时,相关任务进入 `conflict-pending` 或 `blocked`,由主会话/总工处理,不得静默覆盖。
|
|
629
|
+
- 会话展示名使用 `项目名|角色|职责或工作流`;provider 模式的发现和复用必须验证项目身份、职责、任务范围、cwd、占用、幂等键和 canonical `providerSessionId`。local-degraded 模式只能使用 `localSessionId` 做控制面关联,不能进行真实宿主复用,历史不得覆盖或删除。
|
|
630
|
+
- 最终交付必须列出已完成、未完成、阻塞任务、实际修改文件、业务代码变更、测试、审查、风险和下一步;所有接管门禁、会话证据、共享事实、冲突检查和敏感扫描通过后才可 ready。
|
|
620
631
|
|
|
621
632
|
## 自我学习
|
|
622
633
|
|
|
@@ -311,5 +311,5 @@
|
|
|
311
311
|
- requirementPacketId / technicalImpactPacketId / 两个 contentHash:待填写
|
|
312
312
|
- packet 状态:captured / clarifying / proposed / confirmed / in-progress / blocked / completed / cancelled;技术影响:not-started / assessing / ready / partial / blocked
|
|
313
313
|
- packet 失效原因:packet-stale / 待填写
|
|
314
|
-
- databaseAccessMode:sql-only
|
|
314
|
+
- databaseAccessMode:local-files-read-only(legacyDatabaseAccessMode=sql-only;sqlExecutionMode=generate-only)
|
|
315
315
|
- 数据库连接、查询、结构变更、数据修改授权状态:待填写
|
|
@@ -1,7 +1,21 @@
|
|
|
1
1
|
{
|
|
2
2
|
"schemaVersion": 1,
|
|
3
|
-
"databaseAccessMode": "
|
|
3
|
+
"databaseAccessMode": "local-files-read-only",
|
|
4
|
+
"databaseAccessModeEnum": ["local-files-read-only", "sql-only"],
|
|
5
|
+
"legacyDatabaseAccessMode": "sql-only",
|
|
6
|
+
"databaseAccessModePolicy": "local database-related source files only; never connect to a local or online database",
|
|
7
|
+
"sqlExecutionMode": "generate-only",
|
|
8
|
+
"sqlExecutionModeEnum": ["generate-only", "forbidden"],
|
|
4
9
|
"connectionStatus": "not-requested",
|
|
10
|
+
"connected": false,
|
|
11
|
+
"sqlExecuted": false,
|
|
12
|
+
"localFileReadStatus": "not-checked",
|
|
13
|
+
"localFileReadStatusEnum": ["not-checked", "not-needed", "read-only", "blocked", "failed"],
|
|
14
|
+
"localDatabaseFileScope": ["*.sql", "*.ddl", "*.schema", "*.migration", "database/", "migrations/", "schema/", "models/"],
|
|
15
|
+
"localFileReadPolicy": "database-related-task-only",
|
|
16
|
+
"localFilesRead": [],
|
|
17
|
+
"unverifiedScope": [],
|
|
18
|
+
"forbiddenOperations": ["database-connection", "database-query", "sql-execution", "migration-execution", "seed-execution", "data-mutation"],
|
|
5
19
|
"connectionStatusEnum": ["not-requested", "requested", "authorized", "denied", "expired", "failed", "unknown"],
|
|
6
20
|
"queryAuthorization": "not-requested",
|
|
7
21
|
"queryAuthorizationEnum": ["not-requested", "requested", "authorized", "denied", "expired", "failed", "unknown"],
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
{
|
|
2
|
+
"schemaVersion": 1,
|
|
3
|
+
"deliveryId": "delivery-template",
|
|
4
|
+
"taskId": null,
|
|
5
|
+
"orchestratorSessionId": null,
|
|
6
|
+
"status": "blocked",
|
|
7
|
+
"statusEnum": ["pending", "partial", "blocked", "ready"],
|
|
8
|
+
"completedItems": [],
|
|
9
|
+
"unfinishedItems": [],
|
|
10
|
+
"blockedTasks": [],
|
|
11
|
+
"changedFiles": [],
|
|
12
|
+
"businessCodeChanged": "unknown",
|
|
13
|
+
"tests": [],
|
|
14
|
+
"reviewResults": [],
|
|
15
|
+
"risks": [],
|
|
16
|
+
"nextActions": [],
|
|
17
|
+
"gateReferences": [],
|
|
18
|
+
"evidence": [],
|
|
19
|
+
"readyRule": "all required takeover gates, session evidence, shared facts, conflict checks, sensitive scan, tests and reviewer results must pass",
|
|
20
|
+
"createdAt": null,
|
|
21
|
+
"updatedAt": null
|
|
22
|
+
}
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
{
|
|
2
|
+
"schemaVersion": 1,
|
|
3
|
+
"handoffId": "handoff-template",
|
|
4
|
+
"taskId": null,
|
|
5
|
+
"roleId": null,
|
|
6
|
+
"sessionId": null,
|
|
7
|
+
"fromActor": null,
|
|
8
|
+
"toActor": null,
|
|
9
|
+
"status": "pending",
|
|
10
|
+
"statusEnum": ["pending", "accepted", "blocked", "closed"],
|
|
11
|
+
"readBeforeExecution": {
|
|
12
|
+
"projectSnapshotHash": null,
|
|
13
|
+
"taskIndexRevision": null,
|
|
14
|
+
"recentChangeIds": [],
|
|
15
|
+
"otherHandoffIds": [],
|
|
16
|
+
"contractSnapshotIds": [],
|
|
17
|
+
"occupancyEvidence": []
|
|
18
|
+
},
|
|
19
|
+
"completedWork": [],
|
|
20
|
+
"changedFiles": [],
|
|
21
|
+
"apiChanges": [],
|
|
22
|
+
"databaseFieldChanges": [],
|
|
23
|
+
"componentChanges": [],
|
|
24
|
+
"businessFlowChanges": [],
|
|
25
|
+
"impactOnOtherTasks": [],
|
|
26
|
+
"unfinishedWork": [],
|
|
27
|
+
"pendingConfirmations": [],
|
|
28
|
+
"evidence": [],
|
|
29
|
+
"nextAction": null,
|
|
30
|
+
"createdAt": null,
|
|
31
|
+
"updatedAt": null
|
|
32
|
+
}
|
|
@@ -7,6 +7,8 @@
|
|
|
7
7
|
"statusEnum": ["available", "available-with-dependency", "unavailable", "permission-denied", "unknown", "not-checked", "not-verified", "failed"],
|
|
8
8
|
"dependencyStatusEnum": ["not-required", "required", "authorized", "not-authorized", "unknown"],
|
|
9
9
|
"capabilityRequiredFields": ["capabilityId", "detectionMethod", "status", "evidence", "dependencyStatus", "fallbackPlan", "usedTools", "unusedTools", "unverifiedScope", "failureReason", "checkedAt"],
|
|
10
|
+
"historicalCapabilityContract": { "version": "1.10", "requiredCount": 6, "status": "legacy-compatible" },
|
|
11
|
+
"currentProviderCapabilityContract": { "version": "1.13.1", "requiredCount": 8, "source": "host-preflight.template.json", "requiredCapabilities": ["createRealSession", "reuseExistingSession", "sendTask", "receiveResult", "querySessionStatus", "recoverSession", "closeSession", "controlFileReadWrite"] },
|
|
10
12
|
"evidenceRequiredFields": ["evidenceType", "source", "summaryOrHash", "checkedAt"],
|
|
11
13
|
"unknownPolicy": "unknown-means-no-verifiable-evidence; never report verified or unavailable without evidence",
|
|
12
14
|
"checkedAt": null,
|
|
@@ -9,7 +9,19 @@
|
|
|
9
9
|
"statusEnum": ["pending", "initializing", "completed", "partial", "blocked", "unknown", "failed", "cancelled"],
|
|
10
10
|
"statusSource": "xinyun-ai/current-task.md",
|
|
11
11
|
"currentVersion": null,
|
|
12
|
-
"targetVersion": "1.
|
|
12
|
+
"targetVersion": "1.14.0",
|
|
13
|
+
"agentCore": {
|
|
14
|
+
"version": "1.14.0",
|
|
15
|
+
"profilePath": "xinyun-ai/agent-profile.json",
|
|
16
|
+
"capabilitiesPath": "xinyun-ai/agent-capabilities.json",
|
|
17
|
+
"takeoverGatePath": "xinyun-ai/takeover-gate.json",
|
|
18
|
+
"orchestratorPath": "xinyun-ai/tasks/orchestrator.json",
|
|
19
|
+
"taskGraphPath": "xinyun-ai/tasks/task-graph.json",
|
|
20
|
+
"finalDeliveryPath": "xinyun-ai/final-delivery.json",
|
|
21
|
+
"agentStatus": "manual-required",
|
|
22
|
+
"takeoverStatus": "blocked",
|
|
23
|
+
"taskStatusLabelMapVersion": "1.14.0"
|
|
24
|
+
},
|
|
13
25
|
"idempotencyKey": null,
|
|
14
26
|
"createdFiles": [],
|
|
15
27
|
"updatedFiles": [],
|
|
@@ -124,6 +136,16 @@
|
|
|
124
136
|
"sessionIdsRemainNullUntilDecision": true
|
|
125
137
|
}
|
|
126
138
|
},
|
|
139
|
+
"v114": {
|
|
140
|
+
"handoffsDirectory": "xinyun-ai/handoffs/",
|
|
141
|
+
"finalDeliveryPath": "xinyun-ai/final-delivery.json",
|
|
142
|
+
"requiredRoleCount": 5,
|
|
143
|
+
"orchestratorSessionId": null,
|
|
144
|
+
"taskGraphStatus": "blocked",
|
|
145
|
+
"takeoverGateStatus": "blocked",
|
|
146
|
+
"readyRequiresAllGates": true,
|
|
147
|
+
"realProviderEvidenceRequired": true
|
|
148
|
+
},
|
|
127
149
|
"v19": {
|
|
128
150
|
"projectIdentityPath": "xinyun-ai/project-identity.json",
|
|
129
151
|
"technicalLandscapePath": "xinyun-ai/technical-landscape.json",
|
|
@@ -131,13 +153,25 @@
|
|
|
131
153
|
"technicalImpactPacketPath": "xinyun-ai/packets/technical-impact-packet.json",
|
|
132
154
|
"databaseAuthorizationPath": "xinyun-ai/database/authorization.json",
|
|
133
155
|
"packetHashAlgorithm": "RFC8785-JCS-SHA-256",
|
|
134
|
-
"databaseAccessMode": "
|
|
156
|
+
"databaseAccessMode": "local-files-read-only",
|
|
157
|
+
"legacyDatabaseAccessMode": "sql-only",
|
|
158
|
+
"sqlExecutionMode": "generate-only"
|
|
135
159
|
},
|
|
136
160
|
"databaseAuthorization": {
|
|
137
161
|
"authorization": "not-requested",
|
|
138
162
|
"executionStatus": "needs-confirmation",
|
|
139
163
|
"redactionStatus": "verified",
|
|
164
|
+
"databaseAccessMode": "local-files-read-only",
|
|
165
|
+
"legacyDatabaseAccessMode": "sql-only",
|
|
166
|
+
"sqlExecutionMode": "generate-only",
|
|
140
167
|
"connected": false,
|
|
168
|
+
"sqlExecuted": false,
|
|
169
|
+
"localFileReadStatus": "not-checked",
|
|
170
|
+
"localFileReadStatusEnum": ["not-checked", "not-needed", "read-only", "blocked", "failed"],
|
|
171
|
+
"localDatabaseFileScope": ["*.sql", "*.ddl", "*.schema", "*.migration", "database/", "migrations/", "schema/", "models/"],
|
|
172
|
+
"localFileReadPolicy": "database-related-task-only",
|
|
173
|
+
"localFilesRead": [],
|
|
174
|
+
"unverifiedScope": [],
|
|
141
175
|
"evidence": []
|
|
142
176
|
},
|
|
143
177
|
"sensitiveScan": {
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"projectName": "",
|
|
3
|
-
"xinyunAiVersion": "1.
|
|
3
|
+
"xinyunAiVersion": "1.14.0",
|
|
4
4
|
"scriptVersion": "2026.07.23",
|
|
5
5
|
"schemaVersion": "1",
|
|
6
6
|
"initializationMode": "fast",
|
|
@@ -14,6 +14,18 @@
|
|
|
14
14
|
"git": "unknown"
|
|
15
15
|
},
|
|
16
16
|
"codegraph": { "enabled": false, "status": "unknown" },
|
|
17
|
+
"agentCore": {
|
|
18
|
+
"version": "1.14.0",
|
|
19
|
+
"profile": "xinyun-ai/agent-profile.json",
|
|
20
|
+
"capabilities": "xinyun-ai/agent-capabilities.json",
|
|
21
|
+
"takeoverGate": "xinyun-ai/takeover-gate.json",
|
|
22
|
+
"orchestrator": "xinyun-ai/tasks/orchestrator.json",
|
|
23
|
+
"taskGraph": "xinyun-ai/tasks/task-graph.json",
|
|
24
|
+
"handoffsDirectory": "xinyun-ai/handoffs/",
|
|
25
|
+
"finalDelivery": "xinyun-ai/final-delivery.json",
|
|
26
|
+
"statusEnum": ["ready", "partial", "blocked", "manual-required"],
|
|
27
|
+
"status": "manual-required"
|
|
28
|
+
},
|
|
17
29
|
"index": { "primary": "json_markdown", "sqlite": "optional" },
|
|
18
30
|
"capabilities": {
|
|
19
31
|
"confirmationGate": true,
|
|
@@ -107,7 +119,7 @@
|
|
|
107
119
|
"providerSessionBindingTemplate": "xinyun-ai-init/templates/provider-session-binding.template.json",
|
|
108
120
|
"providerSessionBindings": "xinyun-ai/sessions/provider-session-bindings.json",
|
|
109
121
|
"parentSessionId": null,
|
|
110
|
-
"targetVersion": "1.
|
|
122
|
+
"targetVersion": "1.14.0",
|
|
111
123
|
"requiredRoleCount": 5,
|
|
112
124
|
"statusEnum": [
|
|
113
125
|
"pending",
|
|
@@ -249,7 +261,16 @@
|
|
|
249
261
|
"technicalImpactPacket": "xinyun-ai/packets/technical-impact-packet.json",
|
|
250
262
|
"databaseAuthorization": "xinyun-ai/database/authorization.json",
|
|
251
263
|
"packetHashAlgorithm": "RFC8785-JCS-SHA-256",
|
|
252
|
-
"databaseAccessModeDefault": "
|
|
264
|
+
"databaseAccessModeDefault": "local-files-read-only",
|
|
265
|
+
"legacyDatabaseAccessMode": "sql-only",
|
|
266
|
+
"sqlExecutionMode": "generate-only",
|
|
267
|
+
"databaseLocalFilePolicy": {
|
|
268
|
+
"scope": ["*.sql", "*.ddl", "*.schema", "*.migration", "database/", "migrations/", "schema/", "models/"],
|
|
269
|
+
"readOnly": true,
|
|
270
|
+
"taskTriggeredOnly": true,
|
|
271
|
+
"connectionAllowed": false,
|
|
272
|
+
"sqlExecutionAllowed": false
|
|
273
|
+
}
|
|
253
274
|
},
|
|
254
275
|
"v110": {
|
|
255
276
|
"projectStatus": "xinyun-ai/project-status.json",
|
|
@@ -324,6 +345,22 @@
|
|
|
324
345
|
"manualBindingConfirmationPhrase": "已创建,继续绑定",
|
|
325
346
|
"noChoicePolicy": "remain-blocked-without-repeat-prompt"
|
|
326
347
|
},
|
|
348
|
+
"v114": {
|
|
349
|
+
"status": "implemented-in-package",
|
|
350
|
+
"capability": "agentCoreAndTakeoverControl",
|
|
351
|
+
"agentProfile": "xinyun-ai/agent-profile.json",
|
|
352
|
+
"agentCapabilities": "xinyun-ai/agent-capabilities.json",
|
|
353
|
+
"takeoverGate": "xinyun-ai/takeover-gate.json",
|
|
354
|
+
"orchestrator": "xinyun-ai/tasks/orchestrator.json",
|
|
355
|
+
"taskGraph": "xinyun-ai/tasks/task-graph.json",
|
|
356
|
+
"handoffsDirectory": "xinyun-ai/handoffs/",
|
|
357
|
+
"finalDelivery": "xinyun-ai/final-delivery.json",
|
|
358
|
+
"agentStatusEnum": ["ready", "partial", "blocked", "manual-required"],
|
|
359
|
+
"takeoverStatusEnum": ["not-started", "assessing", "partial", "blocked", "manual-required", "ready"],
|
|
360
|
+
"taskStatusCodeEnum": ["captured", "pending", "executing", "waiting-review", "awaiting-confirmation", "completed", "blocked", "cancelled"],
|
|
361
|
+
"taskStatusLabelMap": {"captured": "待分析", "pending": "待分配", "executing": "执行中", "waiting-review": "待审查", "awaiting-confirmation": "待确认", "completed": "已完成", "blocked": "阻塞", "cancelled": "已取消"},
|
|
362
|
+
"readyRequires": ["controlPlane", "mainTask", "roleTasks", "teamResponsibility", "codeGraph", "roleSessions", "orchestrator", "recovery", "indexes", "sharedFacts", "conflicts", "sensitiveScan"]
|
|
363
|
+
},
|
|
327
364
|
"v111": {
|
|
328
365
|
"status": "implemented-in-package",
|
|
329
366
|
"capability": "initializationAcceleration",
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
{
|
|
2
|
+
"schemaVersion": 1,
|
|
3
|
+
"orchestratorId": "orchestrator-template",
|
|
4
|
+
"orchestratorSessionId": null,
|
|
5
|
+
"provider": "codex",
|
|
6
|
+
"parentTaskId": null,
|
|
7
|
+
"projectRootHash": null,
|
|
8
|
+
"workspaceScope": "xinyun-ai-control",
|
|
9
|
+
"responsibilities": ["requirement-understanding", "task-decomposition", "role-assignment", "dependency-management", "result-aggregation", "conflict-routing", "test-review", "final-delivery"],
|
|
10
|
+
"status": "blocked",
|
|
11
|
+
"statusEnum": ["pending", "active", "blocked", "closed"],
|
|
12
|
+
"identityEvidence": [],
|
|
13
|
+
"dispatchEvidence": [],
|
|
14
|
+
"taskGraphPath": "xinyun-ai/tasks/task-graph.json",
|
|
15
|
+
"nextAction": "obtain canonical orchestrator session evidence",
|
|
16
|
+
"createdAt": null,
|
|
17
|
+
"updatedAt": null
|
|
18
|
+
}
|