---
name: qiqi-project
description: 使用 qiqi 命令处理企企服务业ERP项目工作。需要定位项目，创建、修改、开始或完成项目任务、日常任务和子任务，登记项目工时。
description_zh: "使用 qiqi 定位项目，创建、修改、开始或完成项目任务、日常任务和子任务，并登记项目工时。"
description_en: "Uses qiqi to locate projects, manage project, daily, and child tasks, and log project work hours."
version: "1.0.0"
author: "77Hub"
---

# 企企服务业ERP项目领域

本技能定义项目领域专用命令入口、分析口径和结果判断。当前参数以 qiqi 目标叶子命令 `--help` 为准。

## 领域事实边界

- **项目**是任务、工时和业财事实的归集范围；名称只产生候选，稳定 `Project:<id>` 或唯一编码才确认项目。
- **任务**可能同时承担项目计划/WBS与日常执行两类用途。本技能的专用写入路径只处理当前运行时公开的任务命令；计划层级、汇总规则和依赖关系必须由当前对象元数据确认。
- **工时**是人员在业务自然日向项目或任务归集的投入事实；其单据阶段、成本归集和预算控制规则以当前企业配置为准，不从一次登记直接推断。

## 当前 profile 公开 project 域时的操作入口

只有当前 profile 的 `qiqi --help` 出现 `project` 域时，才读取并使用对应叶子命令；未公开时报告能力缺口，不把以下入口当作固定能力。

| 业务意图 | 使用的命令 |
| --- | --- |
| 创建项目任务、日常任务或子任务 | `project task create` |
| 修改任务业务属性 | `project task update` |
| 开始任务 | `project task start` |
| 完成任务 | `project task finish` |
| 登记项目或任务工时 | `project work-hours log` |

任务开始和完成不使用 `do-action`。不得因为通用动作名称相近而建立第二条执行路径。

## 工作原则

- 使用目标 profile 的 `auth status` 核对当前企业和用户；profile 已明确且刚验证过时不重复执行。
- 用 `objects`、`seek`、`query list` 和 `records get` 按需取得唯一项目、任务和人员引用；已有稳定引用时直接核对必要记录。
- 查询前明确项目范围、业务期间、事实阶段和完整性要求；处理完整分页和大输出后再形成统计结论。
- 写入前读取目标叶子命令 `--help`，只发送用户意图需要的最小参数；未展开的可写字段按「写入保护」处理。
- 根据返回的稳定引用、记录阶段和关键字段验证结果。超时或结果不明确时先查询，不直接重试。

## 写入保护

- 项目任务、日常任务和子任务是不同意图；没有项目时不把项目工作降级为日常任务。
- 不创建占位项目、占位人员或占位任务来满足工时登记。
- 项目和父任务是结构上下文，不作为普通字段重复写入；状态、来源、审计和计算字段由业务规则维护。
- 创建任务返回草稿或其它阶段时按返回事实报告，不把创建成功表述为已提交、已开始或已完成。
- 每次执行都是一次独立的业务意图，CLI 不在多次调用之间去重。重跑任务创建或工时登记会再写入一条，结果不明确时先核查业务事实再决定。
- 明确批量处理同一父任务下的子任务时，开始、完成等写操作默认串行；前一项结果明确后再处理下一项，避免并发写入冲突。
- 计划开始、计划完成、实际开始、实际完成和工时日期都是业务自然日，具体格式以当前字段和命令描述为准。

### 未展开的可写模型字段

任务创建、任务修改和工时登记共用本规则。

模型元数据决定字段是否存在、技术名、数据类型和可写性；命令输入定义只决定哪些字段被展开为一级选项。用户需要录入的字段已在当前模型元数据中定义且可写、但未在目标命令中展开时，才属于本节处理范围。

先确认字段技术名、数据类型以及引用、枚举或布尔字段的候选值。模型元数据未定义，或属于状态、来源、审计、计算字段时，不构造或写入。

确认后，使用目标命令的 `--data` 传递完整业务参数对象；`--data` 与逐字段选项互斥。已展开的标准字段与未展开的可写字段同时需要写入时，也统一放入同一个 JSON 对象，不拆成未经确认的命令选项。

## 按需读取

- 需要理解任务意图、结构、计划与执行工作流时，读取 [task-workflows.md](references/task-workflows.md)。
- 需要登记或解释项目投入、工时成本与计费依据时，读取 [work-hours.md](references/work-hours.md)。

只读取当前任务需要的引用文件。
