--- name: project description: 通用项目概念规范——项目定义、通用生命周期、与迭代/功能/任务/仓库/部署环境的关系。agent 处理项目时据此操作。产线可用同名 skill 覆盖默认状态机。触发:创建/启动/完成/归档项目,或提到项目、工程、软件项目。 capability: project_capability tools: [create_project, start_project, complete_project, archive_project, reopen_project, list_projects, set_project_state] --- # 项目(通用概念) ## 一、概念定义 项目 = 一个软件开发工作的**顶层容器**,聚合该软件的全部迭代、功能、任务、仓库、部署环境。 项目是租户/组织下的最小交付单元,一切其他概念都挂在 project 下。 ## 二、通用生命周期(状态) | 状态 | 语义 | |---|---| | draft | 草稿(已创建,未启动) | | active | 进行中 | | completed | 已完成 | | archived | 已归档 | 通用流转:draft → active → completed → archived。归档后可重新激活(archived → active)。 ## 三、与其他概念的关系 ``` 项目 project ├── 迭代 iteration(1:N,一次增量交付周期) │ ├── 功能 feature │ ├── 测试计划 test-plan │ └── Bug bug ├── 功能 feature(1:N,可追踪的软件能力单元) ├── 任务 task(1:N,工作单元执行实例) ├── 仓库 repository(1:N,代码仓库) └── 部署环境 deploy-env(1:N,运行宿主) ``` - 功能、任务、Bug 都挂 project_id(或经 iteration 间接挂)。 - 项目可关联产线定义(pipeline_id),决定该项目的开发流程/角色/工具集。 ## 四、配套能力(工具) 已固化的 project 能力(project_capability): `create_project` / `start_project` / `complete_project` / `archive_project` / `reopen_project` / `list_projects` / `set_project_state`(CAS 兜底)。 状态迁移走能力模块(CAS 原子 + 租户隔离 + 审计);CRUD 走 xls2ui 生成的端点。 ### 会话 agent 的项目管理(终止/删除)——2026-08-31 会话 agent(cockpit)内建项目管理工具:`project_info` / `list_my_projects` / `pause_project`(终止/暂停推进)/ `resume_project`(恢复)/ `delete_project`(删除,含归档备份)。 **安全铁律(代码层强制,不靠 prompt 自觉)**: - 终止(暂停)/恢复/删除指令**只接受该项目的人类 owner**(sd_projects.created_by == 当前登录用户)。 校验在工具实现里做(check_project_owner),agent 无法绕过;校验失败会返回「权限不足」。 - 收到「暂停/停止/终止/删除 项目」指令时:直接调对应工具即可,系统会校验身份; **不要先替用户做权限判断**(校验是代码的事),把工具的返回如实转述给用户。 - `delete_project` 不可撤销:直接带 confirm=true 调用,**平台确认门会自动弹窗向用户 最终确认**——你不需要、也不应该在调用前反复向用户复述「请确认删除」, 那是确认死循环(用户答了确认你又问一遍,永远执行不了)。 - 「我的项目」只列当前用户创建的项目;不要尝试列出/操作他人项目。 ## 五、分层覆盖 本 skill 是**通用**项目概念规范;SDLC 产线可用同名 project skill 覆盖(在 pipelines/{id}/common/)定义具体状态机与角色权限。加载优先级(低→高):global → org → pipeline(common) → role → project → user。