commitlisted
Install: claude install-skill fitlab-ai/agent-infra
# 提交代码
> `--agent` 取值见 `.agents/rules/task-management.md`「合作者 token 规范」。
在不覆盖用户本地工作的前提下创建 Git commit,并在需要时更新关联任务状态。
commit core 只返回一个主结果:`committed`、`no_op`、`committed_with_warnings`、`failed` 或 `blocked`,并附带结构化 `warnings`。push 失败或保护分支策略不会撤销已经创建的本地提交。
## 任务上下文
入口可省略 task ref;显式 task scope 仅接受 `--task <ref>` 或 `-t <ref>`,不再解释位置 task ref。先调用 `agent-infra-internal task-context resolve {task-scope}`。
- 显式 task scope 解析失败时停止。
- 未显式指定 task scope 时,只有 `TASK_CONTEXT_NOT_FOUND` 可进入 taskless direct;detached HEAD、损坏候选或多匹配必须 fail closed。
- 入口业务操作数包含字面 `--orchestrated` 时使用 `mode=orchestrated`,否则使用 `mode=direct`;不得从 run 文件或环境推断模式。
- taskless direct 不读取、创建或完成 task intent、receipt、checkpoint 或 task.md 收尾记录。
- task-bound direct 不要求 delegation receipt;orchestrated 必须由 core 验证匹配的 activated commit receipt 和 capability。
- 解析成功后只使用 core 返回的 `taskId`;不得从环境、分支或文件名猜测任务身份。
## 1. 检查本地修改
在任何编辑前先检查:
```bash
git status --short
git diff
```
必须尊重现有用户改动;如果计划与之冲突,按禁言规则停止并记录阻塞原因。
## 2. 更新版权头年份
动态获取当前年份,只更新已经改动过的带版权头文件。完整流程见 `reference/copyright-check.md`。
## 3. 生成提交信息
检查状态、diff 和最近历史,按 Conventional Commits 生成英文祈使句 message,并读取 `reference/commit-message.md` 处理协作署名。
## 4. 调用唯一 commit core
执行本步骤前读取 `reference/commit-orchestration.md`。
将 message、明确 paths、expected HEAD/tree、task scope、agent、mode 和必填 push policy 写入临时 JSON,然后调用:
```bash
agent-infra-internal git-workflow commit --input {commit-operation.json}
```
示例:
```json
{
"taskRef": "TASK-YYYYMMDD-HHMMSS",
"agent": "codex",
"mode": "direct"