| name | framework-issue-resolve |
| description | 上游 GitHub issue 全闭环 — 拉取 → 审查分析 → 给修复意见 → 实施 → 关闭 issue。覆盖 framework-feedback bundle 的整段消化路径,把下游反馈打通到上游 SKILL-IMPROVE 应用 + close。本 skill 仅供 maintainer / fork owner 使用,不是下游业务流程的一部分。 |
| argument-hint | [--repo OWNER/NAME] [--label LBL]... [--since YYYY-MM-DD] [--limit N] [--dry-run] |
| suggested-tools | file_read, shell_exec |
| depends | ["framework-feedback"] |
| disable-model-invocation | false |
| user-invocable | true |
| maintainer-only | true |
| record-to-event-log | true |
框架 issue 闭环消化 (framework-issue-resolve)
五步闭环
1. 拉取 (fetch) → cataforge issue triage [--dry-run]
2. 审查分析 (analyze) → draft 落 docs/reviews/triage/SKILL-IMPROVE-<id>-issue-<N>.md
3. 给修复意见 (propose)→ draft 内 verdict + rationale + 修复路径
4. 实施 (implement) → feature branch + Edit + commit + PR(标准 dev 流程)
5. 关闭 (close) → cataforge issue close <N> --verdict <v> [--pr <P>] [--reason ...]
每步之间是 maintainer 强制 checkpoint:自动化只跨 1↔2 和 5;3↔4 是人工 go/no-go。
能力边界
- 能做: 拉取 + Layer 1 字段解析 + 草稿渲染 + close 模板化(统一文案)
- 不做: Layer 2 语义分析(仍是基于正则的字段抽取);自动跨过 maintainer 实施 PR;自动改 issue label(用户/maintainer 手动)
审查与修复纪律
Step 2–4 定位与修复前按此自检,规避 LLM 常见误区(「做 A 而非 B」):
- 先在当前代码复现,再判根因:用最小路径验证症状在当前版本仍可复现,而非凭 issue 描述或
confirmed verdict 直接动手 —— verdict 是 Layer 1 事实核查,不代表根因已定。
- 先查是否已实现:动手前搜索目标逻辑是否已存在(可能在另一层或另一入口未接通),而非假设缺失即新写。
- 修根因而非症状:沿调用链 / 数据流定位最深层原因(如 SSOT 违背、生产方与消费方解析不对称),改产生缺陷的一方,而非让消费方容忍坏输入。
- 验证 reporter 建议的前提:其修复方向可能机制不可行、已被实现或仅触及症状;先核实再决定采纳 / 替代 / 否决,不照搬。
- 核全部入口:某能力已存在却仍报缺陷时,确认所有调用路径都接通它,而非只改单一入口。
- 修复设计以收敛为准绳:修复应减少而非增加同一语义在系统中的实现数——不变量只保留一个实现点,置于全部路径必经的最窄处;复用既有机制与信号,删除无生产者 / 无消费者的路径;而非在各入口分别贴补丁、另造检测副本或为死路径保留兼容。
- 可复现缺陷先写失败测试:先写钉住症状的失败测试(RED)再修(GREEN),把回归固化。
输入规范
framework.json#upgrade.source.repo — 拉取目标
framework.json#feedback.gh.labels — 默认 label 过滤集合
- 本地
.cataforge/skills/* 和 .cataforge/agents/* — id 核对
cataforge.__version__ — reported_version vs installed_version 比对
输出规范
Step 2 草稿 frontmatter
---
id: skill-improve-<target_id>-issue-<N>
doc_type: skill-improve
status: draft
source_issue: <N>
source_url: https://github.com/<owner>/<repo>/issues/<N>
reported_version: