- 去掉 tea、gh、Gitea 字样:查工单 spx issue view,查 PR spx pr view,发起 PR spx pr create 且描述必须含 Closes #N - 审查和实施的 diff 不再写死 origin/main:审查取 PR 的目标分支,实施取计划里的目标分支或仓库默认分支 - 工单模板同时看 .gitea/ISSUE_TEMPLATE/ 和 .github/ISSUE_TEMPLATE/,禁止合并的说法不带工具名 - 内联兜底提示词同步改;设置里存着旧版的用户激活时按现有机制被问是否换新版 - 新增测试守住自带提示词和兜底不再点名平台
101 lines
4.9 KiB
Markdown
101 lines
4.9 KiB
Markdown
{{#if issueNumber}}
|
||
/ecc:grilling 讨论下 {{issueNumber}} 号工单
|
||
|
||
先用 `opencli spx issue view --issue {{issueNumber}} --comments` 看工单正文和讨论,再用 `ecc:grilling` 技能讨论细节,用表单形式和我交互,每次只问一个问题(成组的问题也拆成一次一问)。
|
||
|
||
{{#if prototypeFile}}
|
||
工单已有原型插件 {{prototypeFile}},先读它了解已经定下来的界面和交互,在此基础上只对齐还不明确的地方,不要从零重画。
|
||
|
||
**原型要改时只能交给本工单已经开着的原型会话**:先 ListAgents 找到它,再 SendMessage 说清要改哪块、为什么改、改完怎么算对,然后等它回报。
|
||
|
||
- 原型会话终端名:issue-{{issueNumber}}-原型
|
||
{{#if prototypeSessionId}}
|
||
- 原型会话 id:{{prototypeSessionId}}(它 transcript 的文件名就是这个 id)
|
||
{{/if}}
|
||
|
||
严禁用下面这些方式代替:Agent 工具派子代理 / fork 分身 / 后台代理,自己动插件代码,翻 git log 猜会话。ListAgents 里没有这个原型会话就**停下告诉我**去工单面板的「原型会话id」行点 ▶ 起一个,不要自作主张换别的做法。
|
||
|
||
{{/if}}
|
||
## 产物与顺序
|
||
|
||
1. 需求讨论到共识后,用 Skill 工具调 `ecc:spec` 写设计文档到 `.claude/specs/<stem>.md`,让我确认。
|
||
2. 设计文档我确认后,用 Skill 工具调 `ecc:plan`,参数是设计文档路径,产出 `.claude/plans/<stem>.md`;计划出来后停下等我确认。
|
||
3. `<stem>` 取工单标题的英文短横线名,设计文档与计划共用同一个 stem;文件名里不要带 `spec` / `plan` 字样,目录已经表达了。工单已有 marker 就沿用其中的 stem。
|
||
|
||
## marker 维护(本会话有效)
|
||
|
||
设计文档 / 计划文件**一律在当前主 worktree(仓库默认分支)创建并提交**(`ecc:spec` 默认不提交,这里要显式提交),每次只提交这两个文件(提交信息形如 `📝 docs: #<工单号> 设计文档` / `📝 docs: #<工单号> 实施计划`),不要为此新建或切换分支。创建后追加对应 marker:
|
||
|
||
```
|
||
opencli spx issue marker --issue <工单号> --type spec --value .claude/specs/<stem>.md
|
||
opencli spx issue marker --issue <工单号> --type plan --value .claude/plans/<stem>.md
|
||
```
|
||
|
||
## 严禁擅自继续
|
||
|
||
如果你创建/更新了设计文档或计划文件并 marker 已同步,**立即停下**汇报;不要进入实施流程。
|
||
|
||
特别地:
|
||
|
||
- 不要创建分支
|
||
- 不要切换分支,包括 `git checkout` / `git switch`
|
||
- 除设计文档 / 计划文件外不要修改任何文件
|
||
- 不要创建 PR
|
||
- 除上面的 marker 同步外,不要对工单、PR 做任何写操作
|
||
{{else}}
|
||
接下来我要实现下面这样的功能: {{userRequest}}
|
||
|
||
你的任务:用 spx CLI 创建工单。spx 用法参考 `using-spx-cli` skill。
|
||
|
||
## 工单格式
|
||
|
||
先检查仓库的 `.gitea/ISSUE_TEMPLATE/` 和 `.github/ISSUE_TEMPLATE/` 目录:
|
||
|
||
- 有模板(`.md` 或 `.yaml`)→ 严格按模板填 body:标题前缀、章节标题、必填字段都写齐
|
||
- 没有模板 → 用普通 markdown 自由写
|
||
|
||
无论哪种情况,body **末尾必须**包含这一行(且仅此一行;不要预先写其他 `<!-- spx:* -->` marker):
|
||
|
||
```
|
||
<!-- spx:nonce={{nonce}} -->
|
||
```
|
||
|
||
## 创建
|
||
|
||
把 body 写到 `/tmp/issue-body.md`,调 spx:
|
||
|
||
```
|
||
opencli spx issue create --title "<标题>" --body-file /tmp/issue-body.md
|
||
```
|
||
|
||
spx 返回工单号 + html_url。记下工单号,后续命令用。
|
||
|
||
## 后续设计文档 / 计划维护(本会话有效)
|
||
|
||
需求与计划走 ECC 工作流:`/ecc:grilling` 讨论需求,`/ecc:spec` 产出设计文档,`/ecc:plan <设计文档路径>` 产出实施计划。文件路径固定:
|
||
|
||
- 设计文档:`.claude/specs/<stem>.md`
|
||
- 计划:`.claude/plans/<stem>.md`
|
||
|
||
`<stem>` 取工单标题的英文短横线名(如 `app-entity`),两个文件用同一个 stem,文件名里不要带 `spec` / `plan` 字样。两个文件**一律在当前主 worktree(仓库默认分支)创建并提交**(`ecc:spec` 默认不提交,这里要显式提交),每次只提交这两个文件(提交信息形如 `📝 docs: #<工单号> 设计文档` / `📝 docs: #<工单号> 实施计划`);实施 worktree 从默认分支当前提交切出,没提交的文件在那边看不到。
|
||
|
||
**只有**当你真正创建了设计文档或计划文件后才追加对应 marker:
|
||
|
||
```
|
||
opencli spx issue marker --issue <工单号> --type spec --value .claude/specs/<stem>.md
|
||
opencli spx issue marker --issue <工单号> --type plan --value .claude/plans/<stem>.md
|
||
```
|
||
|
||
spx 自动找到对应行替换或追加,保留所有其他 marker。**不要自己手写 `<!-- spx:* -->` 行**。
|
||
|
||
## 严禁擅自继续
|
||
|
||
成功创建工单后**立即停下**汇报:输出工单号 + html_url 即可。
|
||
|
||
特别地:
|
||
|
||
- 不要创建分支
|
||
- 不要切换分支
|
||
- 除设计文档 / 计划文件外不要改动或提交任何文件
|
||
{{/if}}
|