common/ai-workplace/AI工作空间创建指南.md
@@ -84,6 +84,8 @@ | 数据负责人 | 管理数据字典、数据存储说明和正式数据入口 | `data-doc/`;项目约定数据目录;该 AI 工作空间 | | 审核员(指定体系审核) | 审核指定体系的设计、计划、执行、证据链和结果边界 | 对应体系审计报告;必要时在问题记录写跨轮索引;该 AI 工作空间 | 审核员可维护自己审核职责对应的本地审核 / 审计规范,例如 `exp-doc/实验审计规范.md`、`ana-doc/案例审核规范.md`、`dev-doc/开发审计规范.md`、`pro-doc/需求审核规范.md`;该权限只用于审核流程和审计口径维护,不代表可以修改被审体系的执行规范、事项计划、执行日志、结果包或主产物。若需要修改执行规范,必须另授体系维护 / 规范维护角色,或创建独立规范维护事项。 组合角色示例: | 组合角色 | 解释 | @@ -102,7 +104,7 @@ | 开发角色 | 必读文档 | |---|---| | 需求-开发 | 项目本地 `pro-doc/需求规范.md`、相关需求总纲 / 需求文档 / 需求方案 / 三大需求文档;项目本地 `dev-doc/编码规范.md`、`dev-doc/开发审计规范.md` | | 实验-开发 | 项目本地 `exp-doc/实验规范.md`、`exp-doc/实验审核规范.md`、相关实验总纲 / 实验设计;项目本地 `dev-doc/编码规范.md`、`dev-doc/开发审计规范.md` | | 实验-开发 | 项目本地 `exp-doc/实验规范.md`、`exp-doc/实验审计规范.md`、相关实验总纲 / 实验设计;项目本地 `dev-doc/编码规范.md`、`dev-doc/开发审计规范.md` | | 案例分析-开发 | 项目本地 `ana-doc/案例分析规范.md`、`ana-doc/案例分析审核规范.md`、相关案例总纲 / 案例设计或案例流程;项目本地 `dev-doc/编码规范.md`、`dev-doc/开发审计规范.md` | | 项目工具开发 | 项目本地 `项目规范.md`、`项目配置清单.md`、相关项目事项总纲 / 项目事项计划;项目本地 `dev-doc/编码规范.md`、`dev-doc/开发审计规范.md` | @@ -112,7 +114,7 @@ |---|---| | 需求审核员 | 项目本地 `pro-doc/需求规范.md`、`pro-doc/需求审核规范.md`、被审需求事项账本和上游聊天 / 文档证据 | | 开发审核员 | 项目本地 `dev-doc/编码规范.md`、`dev-doc/开发审计规范.md`、被审开发事项账本、目标体系规范和开发产物证据;审计报告入口按目标体系查看项目配置清单 | | 实验审核员 | 项目本地 `exp-doc/实验规范.md`、`exp-doc/实验审核规范.md`、被审实验总纲 / 实验设计 / 执行日志 / 结果包 | | 实验审核员 | 项目本地 `exp-doc/实验规范.md`、`exp-doc/实验审计规范.md`、被审实验总纲 / 实验设计 / 执行日志 / 结果包 | | 案例分析审核员 | 项目本地 `ana-doc/案例分析规范.md`、`ana-doc/案例分析审核规范.md`、被审案例账本 / 执行记录 / 图片或数据证据 | | 项目事项审核员 | 项目本地 `项目规范.md`、`项目配置清单.md`、项目事项总纲 / 项目事项计划 / 项目执行日志 / 项目变更记录 | @@ -219,7 +221,8 @@ 7. 正式产物目录、草稿目录、临时目录和审计入口。 8. 任务入口路由:接到任务后应该先查哪个配置、再读哪个体系规范。 9. 审核边界:如果该 AI 是审核员,要写清审核体系、审计报告入口和不能直接改被审计产物。 10. 禁止事项和越权边界。 10. 审核规范维护边界:如果该 AI 是审核员,要写清可维护的本地审核 / 审计规范入口,以及不得默认修改的被审体系执行规范入口。 11. 禁止事项和越权边界。 `工作说明.md` 不能替代 `实验规范.md`、`编码规范.md`、`开发审计规范.md`、`项目规范.md` 等体系文档。体系流程变化时,以对应体系文档为准,工作说明只做入口索引。 审核员角色的“必读文档入口”必须同时列出被审体系规范、审计规范 / 审计报告入口、被审对象账本入口。 @@ -274,6 +277,7 @@ 4. 私有项目问题反馈:`ai-<AI_NAME>/项目问题反馈.md` 5. 正式产物:<按角色列出正式目录;注明路径是否相对项目根目录> 6. 审计入口:<如有审核角色,列出对应审计报告;注明路径是否相对项目根目录> 7. 审核规范维护入口:<如有审核角色,列出可维护的本地审核 / 审计规范;同时列出不得默认修改的被审体系执行规范> ## 5. 任务入口路由 @@ -371,10 +375,10 @@ 组合角色还必须按角色类型做专项校验: 1. 需求-开发角色:`工作说明.md` 必须同时列出 `pro-doc/需求规范.md`、相关需求事项账本或需求文档入口、`dev-doc/编码规范.md`、`dev-doc/开发审计规范.md`、`dev/pro-dev/`、`dev-doc/pro-doc/`。 2. 实验-开发角色:`工作说明.md` 必须同时列出 `exp-doc/实验规范.md`、`exp-doc/实验审核规范.md`、相关实验总纲 / 实验设计入口、`dev-doc/编码规范.md`、`dev-doc/开发审计规范.md`、目标实验开发工作区。 2. 实验-开发角色:`工作说明.md` 必须同时列出 `exp-doc/实验规范.md`、`exp-doc/实验审计规范.md`、相关实验总纲 / 实验设计入口、`dev-doc/编码规范.md`、`dev-doc/开发审计规范.md`、目标实验开发工作区。 3. 案例分析-开发角色:`工作说明.md` 必须同时列出案例分析规范、案例审核规范、相关案例账本入口、`dev-doc/编码规范.md`、`dev-doc/开发审计规范.md`、目标案例开发工作区。 4. 需求-开发-审核员:`工作说明.md` 必须同时列出需求规范、需求审核规范、编码规范、开发审计规范、需求审计报告、`dev-doc/开发审计报告.md`、需求事项账本入口、开发事项账本入口;不得只列审计报告或只列审核规范。 5. 实验-开发-审核员:`工作说明.md` 必须同时列出实验规范、实验审核规范、编码规范、开发审计规范、`exp-doc/实验审计报告.md`、实验事项账本入口、开发事项账本入口和实验开发工作区;不得把审计入口写成 `dev-doc/开发审计报告.md`。 5. 实验-开发-审核员:`工作说明.md` 必须同时列出实验规范、实验审计规范、编码规范、开发审计规范、`exp-doc/实验审计报告.md`、实验事项账本入口、开发事项账本入口和实验开发工作区;不得把审计入口写成 `dev-doc/开发审计报告.md`。 6. 案例分析-开发-审核员:`工作说明.md` 必须同时列出案例分析规范、案例审核规范、编码规范、开发审计规范、`ana-doc/案例审计报告.md`、案例事项账本入口、开发事项账本入口和案例分析开发工作区;不得把审计入口写成 `dev-doc/开发审计报告.md`。 7. 任一组合审核员:必须列出它要审核的每个体系的“怎么做”文档和“怎么审”文档。如果漏任一体系规范,校验不通过。 common/ana-doc/案例审核规范.md
@@ -128,6 +128,10 @@ 审核员可以运行只读检查脚本、打开图片、读取表格、人工计算关键触发点。 审核员可以维护项目本地 `案例审核规范.md`,仅限修正案例审核流程、审计口径和阻断标准;不得借此修改被审的案例分析规范、案例设计、执行日志、结果包或主产物。 审核员不得直接改被审计主产物来掩盖问题。 如确需修改案例分析执行规范,应创建规范维护事项,或额外授予案例体系维护 / 规范维护角色,并记录原因、影响范围和复审入口。 审核员应抓真问题,不把边角料升级成阻断。 common/codex-bridge/Codex桥接说明.md
New file @@ -0,0 +1,82 @@ # Codex 常驻会话桥接说明 创建人员:Codex 文件职责:说明如何把管理系统消息发送到常驻 Codex 会话。 管理规范/模板:../../全局规范.md;../ai-workplace/AI工作空间创建指南.md。 引用文件:agents.example.json;send-codex-message.ps1。 记录方式:工具说明文档;桥接协议或使用方式变化时追加更新。 ## 1. 目标 本目录用于验证和沉淀一种桥接方式: ```text 管理系统 / 脚本 -> Codex app-server WebSocket / JSON-RPC -> 指定 thread -> 常驻 Codex TUI 或后台会话 ``` 目标不是每次调用 `codex exec` 新起一个会话,而是向已经登记的 `thread_id` 发消息。 ## 2. 当前前置条件 必须先有一个可连接的 Codex app-server: ```powershell codex.cmd app-server --listen ws://127.0.0.1:4567 ``` 并且目标观察员窗口应连接到同一个 app-server,或至少目标 `thread_id` 已经在该 app-server 可恢复。 如果 app-server 没有监听,`send-codex-message.ps1` 会 fail-fast,不会假装发送成功。 ## 3. Agent 注册表 参考 `agents.example.json` 创建项目自己的注册表,建议放在: ```text D:/manage_system/data/codex-bridge/agents.json ``` 关键字段: | 字段 | 说明 | |---|---| | `server_url` | Codex app-server WebSocket 地址 | | `thread_id` | 目标 Codex thread id;为空时脚本可创建新 thread | | `cwd` | 该 agent 默认工作目录 | | `model` | 可选;发 turn 时覆盖模型 | | `approval_policy` | 可选;默认建议 `never` | | `sandbox` | 可选;默认按 thread 原设置 | ## 4. 发送消息 ```powershell .\send-codex-message.ps1 ` -Agent observer ` -Message "你按 ag 检查最近实验,有问题全部报给我" ``` 指定注册表: ```powershell .\send-codex-message.ps1 ` -RegistryPath D:/manage_system/data/codex-bridge/agents.json ` -Agent observer ` -Message "桥接测试:回复 OK" ``` 如果没有 `thread_id`,允许创建新 thread: ```powershell .\send-codex-message.ps1 -Agent observer -Message "初始化观察员" -CreateThreadIfMissing ``` ## 5. 已知限制 1. 本工具依赖 Codex app-server 的实验协议,协议可能随 Codex CLI 版本变化。 2. 当前脚本只实现 WebSocket JSON-RPC 路径,不使用键盘模拟。 3. `codex.cmd app-server --listen ws://...` 在部分环境下可能进程存在但端口未监听,遇到这种情况应先解决 app-server 启动问题。 4. 不建议把消息发到没有队列锁的同一个 thread;同一时间同一 thread 最好只跑一个 turn。 common/codex-bridge/agents.example.json
New file @@ -0,0 +1,11 @@ { "observer": { "server_url": "ws://127.0.0.1:4567", "thread_id": "", "cwd": "D:/strategy_project/s-system-doc/tianxia-mirror", "model": null, "approval_policy": "never", "sandbox": "danger-full-access" } } common/codex-bridge/send-codex-message.ps1
New file @@ -0,0 +1,223 @@ param( [Parameter(Mandatory = $true)] [string]$Agent, [Parameter(Mandatory = $true)] [string]$Message, [string]$RegistryPath = "D:/manage_system/data/codex-bridge/agents.json", [string]$ServerUrl, [string]$ThreadId, [string]$Cwd, [switch]$CreateThreadIfMissing, [switch]$NoWait, [int]$TimeoutSeconds = 180 ) Set-StrictMode -Version Latest $ErrorActionPreference = "Stop" function Read-AgentConfig { param([string]$Path, [string]$Name) if (!(Test-Path -LiteralPath $Path)) { throw "Agent registry not found: $Path. Copy agents.example.json to this path and fill observer config." } $registry = Get-Content -LiteralPath $Path -Encoding UTF8 -Raw | ConvertFrom-Json if (-not ($registry.PSObject.Properties.Name -contains $Name)) { throw "Agent '$Name' not found in registry: $Path" } return $registry.$Name } function New-ClientWebSocket { param([string]$Url) $ws = [System.Net.WebSockets.ClientWebSocket]::new() $ct = [Threading.CancellationToken]::None try { $ws.ConnectAsync([Uri]$Url, $ct).GetAwaiter().GetResult() } catch { throw "Failed to connect Codex app-server at $Url. Ensure 'codex.cmd app-server --listen $Url' is running and actually listening. Detail: $($_.Exception.Message)" } return $ws } function Send-JsonRpc { param( [System.Net.WebSockets.ClientWebSocket]$WebSocket, [object]$Payload ) $json = $Payload | ConvertTo-Json -Depth 100 -Compress $bytes = [Text.Encoding]::UTF8.GetBytes($json) $segment = [ArraySegment[byte]]::new($bytes) $ct = [Threading.CancellationToken]::None $WebSocket.SendAsync($segment, [System.Net.WebSockets.WebSocketMessageType]::Text, $true, $ct).GetAwaiter().GetResult() } function Receive-JsonRpc { param( [System.Net.WebSockets.ClientWebSocket]$WebSocket, [int]$TimeoutSeconds ) $deadline = [DateTime]::UtcNow.AddSeconds($TimeoutSeconds) $buffer = New-Object byte[] 65536 $ms = New-Object System.IO.MemoryStream $ct = [Threading.CancellationToken]::None do { if ([DateTime]::UtcNow -gt $deadline) { throw "Timed out waiting for Codex app-server message after $TimeoutSeconds seconds." } $segment = [ArraySegment[byte]]::new($buffer) $task = $WebSocket.ReceiveAsync($segment, $ct) if (-not $task.Wait(1000)) { continue } $result = $task.GetAwaiter().GetResult() if ($result.MessageType -eq [System.Net.WebSockets.WebSocketMessageType]::Close) { throw "Codex app-server closed the WebSocket." } if ($result.Count -gt 0) { $ms.Write($buffer, 0, $result.Count) } } until ($result.EndOfMessage) $text = [Text.Encoding]::UTF8.GetString($ms.ToArray()) return $text | ConvertFrom-Json } function Wait-Response { param( [System.Net.WebSockets.ClientWebSocket]$WebSocket, [int]$Id, [int]$TimeoutSeconds ) while ($true) { $msg = Receive-JsonRpc -WebSocket $WebSocket -TimeoutSeconds $TimeoutSeconds if (($msg.PSObject.Properties.Name -contains "id") -and [int]$msg.id -eq $Id) { if ($msg.PSObject.Properties.Name -contains "error") { throw "Codex app-server returned error for request $Id`: $($msg.error | ConvertTo-Json -Depth 20 -Compress)" } return $msg.result } Write-Host ($msg | ConvertTo-Json -Depth 20 -Compress) } } function Wait-TurnCompleted { param( [System.Net.WebSockets.ClientWebSocket]$WebSocket, [string]$TurnId, [int]$TimeoutSeconds ) while ($true) { $msg = Receive-JsonRpc -WebSocket $WebSocket -TimeoutSeconds $TimeoutSeconds Write-Host ($msg | ConvertTo-Json -Depth 30 -Compress) if (($msg.PSObject.Properties.Name -contains "method") -and $msg.method -eq "turn/completed") { if (-not $TurnId) { return $msg.params } if (($msg.params.PSObject.Properties.Name -contains "turn") -and $msg.params.turn.id -eq $TurnId) { return $msg.params } } } } $agentConfig = Read-AgentConfig -Path $RegistryPath -Name $Agent if (-not $ServerUrl) { $ServerUrl = [string]$agentConfig.server_url } if (-not $ThreadId) { $ThreadId = [string]$agentConfig.thread_id } if (-not $Cwd) { $Cwd = [string]$agentConfig.cwd } if (-not $ServerUrl) { throw "server_url is required for agent '$Agent'." } $ws = New-ClientWebSocket -Url $ServerUrl try { $nextId = 1 Send-JsonRpc -WebSocket $ws -Payload @{ id = $nextId method = "initialize" params = @{ clientInfo = @{ name = "codex-bridge" version = "0.1.0" } capabilities = @{ experimentalApi = $true } } } [void](Wait-Response -WebSocket $ws -Id $nextId -TimeoutSeconds $TimeoutSeconds) $nextId++ if (-not $ThreadId) { if (-not $CreateThreadIfMissing) { throw "thread_id is empty for agent '$Agent'. Use -CreateThreadIfMissing to create a new thread, then write the returned thread_id back to $RegistryPath." } $threadParams = @{ cwd = $Cwd approvalPolicy = $agentConfig.approval_policy sandbox = $agentConfig.sandbox model = $agentConfig.model persistExtendedHistory = $true } Send-JsonRpc -WebSocket $ws -Payload @{ id = $nextId; method = "thread/start"; params = $threadParams } $threadResult = Wait-Response -WebSocket $ws -Id $nextId -TimeoutSeconds $TimeoutSeconds $ThreadId = [string]$threadResult.thread.id Write-Host "CREATED_THREAD_ID=$ThreadId" $nextId++ } else { $resumeParams = @{ threadId = $ThreadId cwd = $Cwd approvalPolicy = $agentConfig.approval_policy sandbox = $agentConfig.sandbox model = $agentConfig.model excludeTurns = $true } Send-JsonRpc -WebSocket $ws -Payload @{ id = $nextId; method = "thread/resume"; params = $resumeParams } [void](Wait-Response -WebSocket $ws -Id $nextId -TimeoutSeconds $TimeoutSeconds) $nextId++ } $turnParams = @{ threadId = $ThreadId cwd = $Cwd approvalPolicy = $agentConfig.approval_policy sandboxPolicy = $null model = $agentConfig.model input = @( @{ type = "text" text = $Message } ) } Send-JsonRpc -WebSocket $ws -Payload @{ id = $nextId; method = "turn/start"; params = $turnParams } $turnResult = Wait-Response -WebSocket $ws -Id $nextId -TimeoutSeconds $TimeoutSeconds $turnId = [string]$turnResult.turn.id Write-Host "TURN_ID=$turnId" if (-not $NoWait) { [void](Wait-TurnCompleted -WebSocket $ws -TurnId $turnId -TimeoutSeconds $TimeoutSeconds) } } finally { if ($ws) { $ws.Dispose() } } common/dev-doc/开发审计规范.md
@@ -29,6 +29,7 @@ 2. 执行证据链上的脚本、测试或检查命令。 3. 写 `开发审计报告.md`。 4. 在需要跨轮跟踪时,在 `开发问题记录.md` 建立索引。 5. 维护项目本地 `开发审计规范.md`,仅限修正开发审核流程、审计口径和阻断标准;不得借此修改被审代码、编码规范或开发事项产物。 开发审核员不得: @@ -36,6 +37,7 @@ 2. 直接改测试代码。 3. 改写正式产物。 4. 替开发者修复问题后直接判自己通过。 5. 以审核员身份直接改 `编码规范.md`、开发事项计划、开发执行日志或被审开发产物;如确需修改,必须另走规范维护事项或授予规范维护角色。 如审核员同时拥有开发角色,应在记录中明确本次是“开发动作”还是“审计动作”。 common/exp-doc/实验审核规范.md
@@ -29,6 +29,8 @@ 所有项目的审核员都必须遵守本文件。每个项目创建实验环境时都必须创建项目本地 `exp-doc/实验审计规范.md`。项目本地审计规范默认可以很短,只引用本文件并声明必须遵守;如果补充项目特化规则,不能违反本文件的硬约束。具体审核流程可以按 1A.1 设计本地版本。 实验审核员可以维护项目本地 `exp-doc/实验审计规范.md`,仅限修正实验审核流程、审计口径和阻断标准;不得借此修改被审的 `实验规范.md`、实验总纲、实验设计、执行日志、结果包或主产物。如确需修改实验执行规范,应创建规范维护事项,或额外授予实验体系维护 / 规范维护角色。 项目本地审核规范允许补充: 1. 项目专用审核样本口径。 common/manage-doc/管理体系规范.md
@@ -68,7 +68,8 @@ 1. `manage-doc/管理审计报告.md`。 2. `manage-doc/管理问题记录.md` 中的审计问题索引或观察员反馈。 3. 自己的 `ai-<name>/` 工作空间。 3. `manage-doc/管理体系规范.md` 中的审计章节或等价本地管理审核规范,仅限修正管理审核流程、审计口径和阻断标准。 4. 自己的 `ai-<name>/` 工作空间。 禁止: @@ -76,6 +77,7 @@ 2. 直接改写管理管理员已经记录的执行日志或变更记录来掩盖问题。 3. 无条件批准管理管理员自己的高风险动作。 4. 用边角料问题阻断不影响证据链、权限、配置或结果的管理动作。 5. 以管理观察员身份直接修改被审的管理执行规范、配置、计划、日志或主产物;如确需修改,应创建规范维护事项或由管理管理员授予明确维护角色。 ## 4. 高风险管理动作 common/pro-doc/需求审核规范.md
@@ -8,6 +8,8 @@ 统一依赖:本规范必须同时遵守 `../../全局规范.md` 和 `../project-doc/项目规范.md`;项目本地需求审核规范可补充流程,但不得违反全局规范、全局项目规范和本体系硬约束。 需求审核员可以维护项目本地 `需求审核规范.md`,仅限修正需求审核流程、审计口径和阻断标准;不得借此修改被审的 `需求规范.md`、需求设计、需求执行日志、需求文档或主产物。如确需修改需求执行规范,应创建规范维护事项,或额外授予需求体系维护 / 规范维护角色。 ## 1. 审核目标 需求审核的目标是判断需求事项是否目标清楚、设计合理、证据链完整、产物可交接。 common/project-doc/项目审计规范.md
@@ -113,6 +113,7 @@ 3. 写入项目事项审计报告。 4. 在需要跨轮跟踪时写入项目问题记录索引或关联。 5. 要求项目管理员或执行者补证据、修复或复审。 6. 维护项目本地 `项目审计规范.md`,仅限修正项目审核流程、审计口径和阻断标准;不得借此修改被审的项目执行规范或项目事项产物。 项目审核员不得: @@ -120,6 +121,7 @@ 2. 用审计辅助脚本冒充项目正式执行产物。 3. 把与项目目标、计划、证据链无关的措辞或格式问题升级成阻断。 4. 为了“更完整”无边界增加项目管理流程。 5. 以审核员身份直接改被审的项目执行规范、配置、计划、日志或主产物;如确需修改,必须另走规范维护事项或由项目管理员授权维护角色。 发现边角料问题时,默认记录为建议;只有会影响项目目标、计划合理性、权限边界、目录结构、证据链或审计结论的问题,才应阻断。 common/project-doc/项目配置清单模版.md
@@ -46,7 +46,7 @@ | 实验员 | exp-doc/;exp-data/ | 实验文档、实验数据、结果包 | | 案例分析员 | ana-doc/;ana-data/ | 案例分析文档、案例数据、图片 | | 数据负责人 | data-doc/;<数据目录> | 数据字典、数据存储说明、正式数据入口 | | 审核员 | 对应审计报告;问题记录仅写跨轮索引 | 不直接改被审计主产物 | | 审核员 | 对应审计报告;对应本地审核 / 审计规范仅限审核流程维护;问题记录仅写跨轮索引 | 不直接改被审计主产物;不默认改被审体系执行规范 | 开发审核的审计报告入口按目标体系填写:需求开发、项目工具开发、独立开发事项写 `dev-doc/开发审计报告.md`;实验开发写 `exp-doc/实验审计报告.md`;案例分析开发写 `ana-doc/案例审计报告.md`。 data/codex-bridge/agents.json
New file @@ -0,0 +1,11 @@ { "observer": { "server_url": "ws://127.0.0.1:4567", "thread_id": "", "cwd": "D:/strategy_project/s-system-doc/tianxia-mirror", "model": null, "approval_policy": "never", "sandbox": "danger-full-access" } } ~$$管理体系说明.~vsdxBinary files differ
体系创建流程.md
@@ -156,6 +156,12 @@ 5. 审计报告写到哪里。 6. 问题如何闭环。 审核员权限边界必须区分“审核规范维护”和“被审对象修改”: 1. 审核员可以维护自己审核职责对应的本地审核 / 审计规范,用于修正审核流程、审计口径和阻断标准。 2. 审核员不默认修改被审体系执行规范、事项计划 / 设计、执行日志、结果包或主产物。 3. 如确需修改执行规范,应创建规范维护事项,或额外授予体系维护员 / 规范维护员角色,并记录原因、影响范围和复审入口。 ### 5.6 写模板 模板开头必须包含: 全局规范.md
@@ -256,7 +256,7 @@ 3. 开发 AI:按目标体系绑定 `dev/<target>-dev/`、`dev/<target>-dev/test/`、`dev-doc/<target>-doc/` 写权限;不默认拥有所有开发子目录写权限。 4. 实验员:`exp-doc/`、`exp-data/` 写权限。 5. 案例分析员:`ana-doc/`、`ana-data/` 写权限。 6. 审核员:主写对应审计报告;如审计问题需要跨轮跟踪,只在问题记录中写索引或关联,不直接改被审计产物。 6. 审核员:主写对应审计报告;如审计问题需要跨轮跟踪,只在问题记录中写索引或关联;可维护自己审核职责对应的本地审核 / 审计规范,但不默认改被审计产物或被审体系执行规范。 所有 AI 默认拥有项目内所有文件的读权限。 @@ -293,6 +293,7 @@ 3. 写审计报告。 4. 在需要跨轮跟踪时写问题记录索引或关联。 5. 要求执行者补证据、修复或重跑。 6. 维护自己审核职责对应的本地审核 / 审计规范文档,例如 `实验审计规范.md`、`案例审核规范.md`、`开发审计规范.md`、`需求审核规范.md`。该权限只用于审核流程、审计口径和阻断标准维护,不得削弱全局规范、全局项目规范或 common 体系硬约束。 审核员默认不得: @@ -300,8 +301,11 @@ 2. 直接替执行者修改业务主表。 3. 用自己的补丁掩盖执行问题。 4. 把边角料问题升级成阻断问题。 5. 以审核员身份直接修改被审体系执行规范、事项设计 / 计划、执行日志、结果包或正式主产物;例如实验审核员不默认修改 `实验规范.md`,案例审核员不默认修改 `案例分析规范.md`。 如果审核员必须临时修复工具脚本,应明确标记为“审计辅助脚本”,不能冒充执行方正式产物。 如果确实需要修改被审体系执行规范,应创建独立的规范维护事项,或在 `项目配置清单.md` 中额外授予体系维护员 / 规范维护员角色;修改必须记录原因、影响范围、证据路径和复审入口,重大改动应由项目管理员或另一个审核员确认。 ## 7. 项目根目录 `项目规范.md` 规范 @@ -599,7 +603,7 @@ 2. 项目体系和开发体系默认随项目创建;其他体系由项目管理员按需启用。 3. 启用体系后,项目必须遵守 common 规范和本地规范;开发体系在未创建具体目标开发工作区前,先遵守 common/dev-doc 全局开发规范。 4. 正式文档必须有职责、引用、记录方式和目录入口;非文档产物必须能通过 manifest、索引或日志追溯。 5. 权限跟角色走,审核员不直接改被审计产物。 5. 权限跟角色走,审核员可维护对应本地审核 / 审计规范,但不直接改被审计产物或被审体系执行规范。 6. 开发体系绑定目标体系,代码放 `dev/<target>-dev/`,目标代码文档和方案附件放 `dev-doc/<target>-doc/`;正式开发账本统一放 `dev-doc/` 根目录。 7. 所有正式事项必须有目标、过程、结果和审计证据链。 8. 审核抓真问题,不吹毛求疵,不层层加码。 目录导读.md
@@ -16,6 +16,7 @@ | `project A/` | 项目 A 工作目录 | | `project B/` | 项目 B 工作目录 | | `project C/` | 项目 C 工作目录 | | `project-wuji/` | wuji 项目目录,已注册 MB-X,启用项目体系、开发根体系和案例分析体系 | ## 根目录文件 管理系统说明.md
@@ -40,10 +40,9 @@ 3. 实验员:绑定路径/exp-doc /exp-data 4. 案例分析员:绑定路径/ana-doc /ana-data 5. 项目管理员:绑定路径项目根目录/ 6. 审核员:审核员必须是对应上面的角色之一的审核员,不绑定任何目录,只能写对应的审核体系的审核报告.md。比如说需求审计员那只能写 /pro-doc/需求审计报告.md ,比如需求开发审核员只能写 /dev-doc/pro-doc/开发审计报告.md 6. 审核员:审核员必须是对应上面的角色之一的审核员,不绑定业务执行目录,主写对应审核体系的审核 / 审计报告;可维护自己审核职责对应的本地审核 / 审计规范,但不得默认修改被审体系执行规范、事项计划、执行日志、结果包或主产物。比如需求审计员主写 `/pro-doc/需求审计报告.md` 并可维护 `/pro-doc/需求审核规范.md`;需求开发审核员主写对应开发审计报告,并可维护对应开发审计规范。 7. 管理管理员:绑定路径管理根目录和 manage-doc/,负责创建项目、启用体系、创建角色、创建会话、更新 MB-X、同步技能和修复框架问题;必须写入管理事项、管理执行日志和管理变更记录。 8. 管理观察员:管理管理员的审核员,只能写 manage-doc/管理审计报告.md、manage-doc/管理问题记录.md 和自己的 AI 工作空间;不得直接修改被审计的管理配置、执行日志和变更记录。 8. 管理观察员:管理管理员的审核员,主写 `manage-doc/管理审计报告.md`,可在 `manage-doc/管理问题记录.md` 写审计问题索引或观察员反馈,可维护管理体系中的审计口径;不得直接修改被审计的管理配置、执行日志和变更记录。 #### AI工作空间管理 @@ -277,7 +276,7 @@ 下面所有的技能都不得违反全局项目规范.md的要求 和 本地项目规范.md的要求 3. AI工作空间创建 以及 AI角色分配技能; 参考 章节体系管理员必须具备的能力(属于common\ai-workplace\AI工作空间创建指南.md) 4. 实验技能(包括实验设计,到实验执行); (属于common\exp-doc\实验规范.md 以及 项目本地 exp-doc\实验规范.md 两个共同作用的技能 ) 5. 实验审核技能(包括实验设计审核,以及实验全流程审核);(属于common\exp-doc\实验审核规范.md 以及 项目本地 exp-doc\实验审核规范.md 两个共同作用的技能 ) 5. 实验审核技能(包括实验设计审核,以及实验全流程审核);(属于common\exp-doc\实验审核规范.md 以及 项目本地 exp-doc\实验审计规范.md 两个共同作用的技能 ) 6. 需求文档编写技能(包括需求方案文档,以及需求文档修改和书写);(属于common\pro-doc\需求规范.md 以及 项目本地 pro-doc\需求规范.md 两个共同作用的技能 ) 7. 需求审核技能(包括需求方案文档以及需求文档修的审核);(属于common\pro-doc\需求审核规范.md 以及 项目本地 pro-doc\需求审核规范.md 两个共同作用的技能 ) 8. 写代码技能(包括编码方案设计,到代码书写);(属于common\dev-doc\编码规范.md 以及 项目本地 dev-doc\编码规范.md 两个共同作用的技能 )