story-integrate
Compare original and translation side by side
🇺🇸
Original
English🇨🇳
Translation
ChineseSkill: Integración de historia de usuario
Skill:用户故事集成
Guía para cerrar e integrar el trabajo de una historia de usuario : verificar que la carpeta de la US tenga su con todas las tareas en , y luego hacer merge de la rama actual hacia la rama desde la que se creó.
US-XXXprogress.mdDoneAlcance del submit: El skill cierra localmente lo ya implementado. Verifica condiciones y ejecuta. No hace push, no borra ramas, no crea MRs/PRs, no resuelve conflictos, no modificagit merge --no-ff. Lo que no esté enprogress.mdbloquea el merge — el usuario decide cómo proceder, nunca se fuerza.Done
Encaja al final del ciclo iniciado por story-define → story-plan → story-implement. Ver Handoffs del ciclo.
关闭并集成用户故事工作内容的指南:验证该用户故事的文件夹中内的所有任务均处于状态,然后将当前分支合并到其创建来源的分支。
US-XXXprogress.mdDone提交范围说明:该Skill仅在本地关闭已完成的工作内容。它会验证条件并执行命令。不会执行push操作、删除分支、创建MR/PR、解决冲突或修改git merge --no-ff。任何未处于progress.md状态的任务都会阻止合并——由用户决定后续操作,绝不强制执行。Done
该Skill适用于story-define → story-plan → story-implement流程的收尾阶段。详见流程交接。
Cómo preguntar al usuario
如何向用户提问
Cuando este skill indique preguntar, pedir, confirmar, validar o sugerir algo al usuario, hacerlo mediante la herramienta de preguntas estructuradas que ofrezca el cliente (la que renderiza opciones tappables o un selector de respuesta) en lugar de redactar la pregunta como prosa libre. Reglas:
- Una pregunta por turno cuando sea posible; máximo tres preguntas en un mismo bloque.
- Opciones cortas y mutuamente excluyentes (2–4 por pregunta) cuando la respuesta admita categorías; usar entrada libre solo si no hay forma razonable de enumerar opciones.
- No repreguntar lo que ya está respondido en el contexto, en o en
.agents/MEMORY.mdde la US.progress.md - Una sola tanda al inicio para resolver lagunas antes de cualquier operación git (US asociada a la rama, carpeta ambigua, rama base); no ir descubriendo huecos turno a turno. Rama base ambigua: listar los candidatos detectados como opciones tappables (p. ej. ,
develop,main); no proponer un default implícito.release/2026.q2 - Fallback: si el cliente no expone esta herramienta, formular la pregunta en prosa con opciones enumeradas (1, 2, 3…).
Cada sección posterior que diga preguntar al usuario, validar con el usuario, confirmar o sugerir al usuario asume este mecanismo; no se vuelve a repetir.
当该Skill提示需要询问、请求、确认、验证或建议用户操作时,需使用客户提供的结构化提问工具(可渲染可点击选项或响应选择器),而非自由文本提问。规则如下:
- 尽可能一次只提一个问题;同一模块中最多提三个问题。
- 当答案可分类时,提供简短且互斥的选项(每个问题2-4个选项);仅当无法合理枚举选项时,才使用自由输入。
- 不要重复询问上下文、或用户故事的
.agents/MEMORY.md中已明确的内容。progress.md - 在执行任何Git操作前,一次性解决所有信息缺口(如分支关联的用户故事、模糊的文件夹、基础分支);不要逐次发现问题。基础分支模糊时:将检测到的候选分支列为可点击选项(例如、
develop、main);不要默认推荐某一分支。release/2026.q2 - 备选方案:若客户未提供该结构化工具,则用自由文本列出选项(1、2、3…)进行提问。
后续所有标注询问用户、与用户验证、确认或向用户建议的章节均默认遵循此机制,不再重复说明。
Resolución de idioma
语言解析规则
Orden canónico compartido con el resto del ciclo de historias. Detenerse en el primer paso que aplique:
- (raíz del repo) → línea
.agents/MEMORY.md(p. ej.preferred language: <ISO 639-1>,es). Si no existe esa línea pero hay claves legacy (en,language:,idioma:), usarlas solo como fallback al leer MEMORY antiguo.Project language: - Idioma del turno del usuario (mensaje actual).
- Preguntar al usuario qué idioma prefiere y persistir la respuesta en con
.agents/MEMORY.md.preferred language: <código>
与其他用户故事流程共享标准优先级。按以下顺序执行,找到适用项后停止:
- (仓库根目录)→ 查找
.agents/MEMORY.md行(例如preferred language: <ISO 639-1>、es)。若不存在该行但有旧版关键字(en、language:、idioma:),仅在读取旧版MEMORY时作为备选。Project language: - 用户当前对话的语言(当前消息)。
- 询问用户偏好的语言,并将答案保存到中,格式为
.agents/MEMORY.md。preferred language: <代码>
Ubicación de archivos
文件位置
| Artefacto | Ruta |
|---|---|
| Carpeta de la US | |
| Progreso de la US | |
| Tareas referenciadas | |
| 工件 | 路径 |
|---|---|
| 用户故事文件夹 | |
| 用户故事进度 | |
| 关联任务 | |
Convenciones de rama
分支命名规范
- Formato canónico: con prefijo
feature/US-XXX-[nombre-corto]obligatorio,feature/en mayúsculas y nombre en kebab-case.US-XXX - : tres dígitos con cero a la izquierda; coincide con el número de la carpeta de la US.
XXX - La carpeta de la US se deriva descontando el prefijo :
feature/→feature/US-042-exportacion-csv.docs/specs/user-stories/US-042-exportacion-csv/ - Una rama sin o sin formato
feature/no es submiteable por este skill.US-XXX-... - Ejemplos: ,
feature/US-042-exportacion-csv.feature/US-013-ajuste-permisos
- 标准格式:,必须包含
feature/US-XXX-[nombre-corto]前缀,feature/为大写,名称采用kebab-case格式。US-XXX - :三位数字,不足三位时前面补零;需与用户故事文件夹的编号一致。
XXX - 用户故事文件夹由分支名称去掉前缀得到:
feature/→feature/US-042-exportacion-csv。docs/specs/user-stories/US-042-exportacion-csv/ - 不符合前缀或
feature/格式的分支无法通过此Skill提交。US-XXX-... - 示例:、
feature/US-042-exportacion-csv。feature/US-013-ajuste-permisos
Información requerida antes de mergear
合并前需确认的信息
Antes de tocar git, el agente debe tener clara la siguiente información. No asumir nada — si algún dato no se resuelve, preguntar al usuario.
| Dato | Cómo obtenerlo | Si no está disponible |
|---|---|---|
| Rama actual | | Si no encaja con el patrón |
| Carpeta de la US | Derivar del nombre de rama descontando el prefijo | Si la carpeta no existe: parar e informar; si hay varias coincidentes: preguntar cuál |
Estado de | Leer el archivo en la carpeta de la US | Si no existe: parar e informar; el merge requiere |
| Working tree | | Si hay salida: parar e informar; no se mergea con cambios pendientes |
| Rama base | (1) | No asumir |
| Idioma de preferencia | Ver Resolución de idioma | Preguntar y persistir en |
Leercompleto antes de iniciar cualquier operación git. Las tres condiciones (rama, working tree, estados) se evalúan antes de cambiar de rama o invocarprogress.md.git merge
执行Git操作前,Agent必须明确以下信息。请勿假设任何内容——若某一信息无法确定,需询问用户。
| 信息 | 获取方式 | 无法获取时的处理 |
|---|---|---|
| 当前分支 | | 若不符合 |
| 用户故事文件夹 | 从分支名称中去掉 | 若文件夹不存在:停止操作并告知用户;若存在多个匹配项:询问用户选择哪一个 |
| 读取用户故事文件夹中的该文件 | 若文件不存在:停止操作并告知用户;合并操作需要已填写的 |
| 工作区状态 | | 若有输出:停止操作并告知用户;存在未提交更改时无法合并 |
| 基础分支 | (1) | 请勿默认 |
| 偏好语言 | 详见语言解析规则 | 询问用户并将答案保存到 |
执行任何Git操作前,需完整读取。需先验证三个条件(分支、工作区、任务状态),再切换分支或执行progress.md。git merge
Validación antes de mergear
合并前的验证
Antes de cambiar de rama o ejecutar el merge, verificar las siguientes condiciones. Si alguna falla, no mergear — informar al usuario y resolver primero.
¿Qué verificar?
- Rama actual con formato válido: . Sin el prefijo
feature/US-XXX-[nombre-corto]o sin el segmentofeature/no se puede derivar la carpeta de la US.US-XXX-... - Working tree limpio: sin salida. Cualquier cambio sin commitear bloquea el merge.
git status --porcelain - Carpeta de la US existe: presente con
docs/specs/user-stories/US-XXX-[nombre-corto]/dentro.progress.md - Todas las tareas en : parsear
Doney confirmar que cada entrada tiene estadoprogress.md(case-insensitive, sin espacios extra). Estados comoDone,Pendingo vacío bloquean el merge.In Progress - Code review con veredicto Apto: ejecutar (modificador
code-review) antes del merge. Solo un veredicto ✅ Apto permite continuar. ❌ No apto e ⚠️ Incompleto bloquean el merge hasta que el usuario corrija los problemas y el review se repita con resultado Apto.default - Rama base resoluble: identificada por reflog, por config, o confirmada explícitamente por el usuario. Si hay varios candidatos plausibles y ninguno definitivo, preguntar.
Si hay conflicto:
⚠️ No es posible mergear todavía:
- <razón concreta>
- [TK-XXX: estado-actual] — <detalle si aplica>Ejemplos de razón concreta: , , , .
Rama actual no cumple feature/US-XXX-...: rama es 'fix/hotfix-cache'Working tree sucio: 3 archivos modificadosprogress.md: TK-002 en In Progress, TK-005 en PendingRama base ambigua: candidatos main, develop, release/2026.q2切换分支或执行合并前,需验证以下条件。若任一条件不满足,请勿合并——告知用户并先解决问题。
需要验证哪些内容?
- 当前分支格式有效:符合格式。若无
feature/US-XXX-[nombre-corto]前缀或feature/段,则无法推导用户故事文件夹。US-XXX-... - 工作区干净:无输出。任何未提交的更改都会阻止合并。
git status --porcelain - 用户故事文件夹存在:文件夹存在且包含
docs/specs/user-stories/US-XXX-[nombre-corto]/。progress.md - 所有任务处于状态:解析
Done并确认每一项任务的状态均为progress.md(不区分大小写,无多余空格)。Done、Pending或空白状态都会阻止合并。In Progress - 代码评审结果为通过:合并前执行**(默认参数)。只有✅ 通过的评审结果才能继续操作。❌ 不通过和⚠️ 未完成**会阻止合并,直到用户修复问题并重新评审得到通过结果。
code-review - 基础分支可确定:通过reflog、配置或用户明确确认确定基础分支。若存在多个合理候选分支且无法明确,需询问用户。
若存在冲突:
⚠️ 暂时无法合并:
- <具体原因>
- [TK-XXX: 当前状态] — <适用时补充细节>具体原因示例:、、、。
当前分支不符合feature/US-XXX-...格式:分支为'fix/hotfix-cache'工作区未清理:3个文件已修改progress.md: TK-002处于In Progress状态,TK-005处于Pending状态基础分支模糊:候选分支为main、develop、release/2026.q2Flujo: Submit estándar
流程:标准提交
Camino feliz cuando todas las verificaciones pasan.
- Detectar rama actual con y validar el patrón
git branch --show-current. Si no encaja, parar y preguntar.feature/US-XXX-[nombre-corto] - Verificar working tree limpio con . Si hay salida, parar e informar.
git status --porcelain - Localizar la carpeta de la US descontando el prefijo del nombre de rama:
feature/→feature/US-XXX-[nombre-corto]. Si la carpeta no existe o hay varias coincidentes, parar.docs/specs/user-stories/US-XXX-[nombre-corto]/ - Leer y validar que todas las tareas tienen estado
progress.md. Si alguna no lo está, parar mostrando la lista completa de tareas noDonecon su estado actual.Done - Ejecutar (modificador
code-review) sobre la rama actual. Si el veredicto es ❌ No apto o ⚠️ Incompleto, parar y reportar el informe al usuario — no continuar con el merge hasta obtener veredicto ✅ Apto en una nueva ejecución.default - Resolver la rama base:
- → buscar la entrada inicial con
git reflog show <branch>oCreated from <ref>.branch: Created from <ref> - Fallback: y derivar la rama base local correspondiente.
git config --get branch.<branch>.merge - Si ninguno concluye o hay ambigüedad: preguntar al usuario sin proponer un default.
- Calcular delta con para reportar cuántos commits se van a integrar.
git rev-list --count <base>..HEAD - Cambiar a la rama base con . Si falla, parar y reportar.
git checkout <base> - Ejecutar el merge con . El mensaje de merge usa solo
git merge --no-ff <feature-branch> -m "Merge US-XXX: <nombre-corto>"(sin el prefijoUS-XXX: <nombre-corto>). Si surge conflicto, ir al flujo de conflictos.feature/ - Reportar resultado al usuario: rama origen (con prefijo ), rama destino, número de commits integrados, hash del commit de merge, estado del HEAD y nota explícita de que no se hizo push ni se borró la rama de la US.
feature/
所有验证通过后的顺畅流程。
- 检测当前分支:执行并验证是否符合
git branch --show-current格式。若不符合,停止操作并询问用户。feature/US-XXX-[nombre-corto] - 验证工作区干净:执行。若有输出,停止操作并告知用户。
git status --porcelain - 定位用户故事文件夹:从分支名称中去掉前缀得到文件夹路径:
feature/→feature/US-XXX-[nombre-corto]。若文件夹不存在或存在多个匹配项,停止操作。docs/specs/user-stories/US-XXX-[nombre-corto]/ - 读取:验证所有任务均处于
progress.md状态。若存在未完成任务,停止操作并列出所有未处于Done状态的任务及其当前状态。Done - 执行:对当前分支执行
code-review(默认参数)。若评审结果为**❌ 不通过或⚠️ 未完成**,停止操作并向用户报告评审结果——直到重新评审得到**✅ 通过**结果,才能继续合并。code-review - 确定基础分支:
- → 查找初始记录中的
git reflog show <branch>或Created from <ref>。branch: Created from <ref> - 备选方案:并推导对应的本地基础分支。
git config --get branch.<branch>.merge - 若上述方法均无法确定或存在模糊性:询问用户,不提供默认选项。
- 计算提交增量:执行以报告即将集成的提交数量。
git rev-list --count <base>..HEAD - 切换到基础分支:执行。若操作失败,停止操作并报告。
git checkout <base> - 执行合并:执行。合并消息仅使用
git merge --no-ff <feature-branch> -m "Merge US-XXX: <nombre-corto>"(不含US-XXX: <nombre-corto>前缀)。若出现冲突,进入冲突处理流程。feature/ - 向用户报告结果:告知用户源分支(含前缀)、目标分支、集成的提交数量、合并提交的哈希值、HEAD的状态,并明确说明未执行push操作,也未删除用户故事分支。
feature/
Flujo: Manejo de conflictos
流程:冲突处理
Cuando produce conflictos.
git merge- Abortar inmediatamente con para restaurar el repo al estado previo al merge. No intentar resolución automática ni usar
git merge --abort/--strategy=ours.--strategy=theirs - Identificar archivos en conflicto parseando la salida del intento de merge.
- Reportar al usuario la lista de archivos en conflicto y dejar claro que el repo quedó como estaba. Indicar que el siguiente paso (rebase, merge manual, decisión de alcance) está fuera del skill.
- Parar. No reintentar; no encadenar otra acción git sin nueva instrucción del usuario.
当产生冲突时的处理流程。
git merge- 立即终止合并:执行以将仓库恢复到合并前的状态。请勿尝试自动解决冲突或使用
git merge --abort/--strategy=ours参数。--strategy=theirs - 识别冲突文件:解析合并尝试的输出结果,找出冲突文件。
- 向用户报告:列出冲突文件,并明确告知用户仓库已恢复到合并前状态。说明后续步骤(变基、手动合并、范围决策)超出该Skill的处理范围。
- 停止操作:请勿重试;未得到用户新指令前,请勿执行其他Git操作。
Flujo: Rama base ambigua
流程:基础分支模糊处理
Cuando reflog y config no concluyen, o existen varios candidatos plausibles.
- Listar los candidatos detectados (p. ej. ,
main, ramas de release con commits ancestros del HEAD actual).develop - Preguntar al usuario cuál es la rama base correcta. No proponer un default ni inferir por convención del proyecto sin confirmación.
- Esperar respuesta antes de continuar al paso 7 del flujo estándar. Sin respuesta clara, no hay merge.
当reflog和配置均无法确定基础分支,或存在多个合理候选分支时的处理流程。
- 列出候选分支:列出检测到的候选分支(例如、
main、与当前HEAD有祖先提交的发布分支)。develop - 询问用户:确认正确的基础分支。请勿默认推荐某一分支,也请勿未经确认就根据项目惯例推断。
- 等待用户回复:得到回复后再继续标准流程的第7步。若无明确回复,不得执行合并。
Checklist antes de mergear
合并前检查清单
Información:
- Rama actual detectada y validada contra
feature/US-XXX-[nombre-corto] - Carpeta de la US localizada en
docs/specs/user-stories/US-XXX-[nombre-corto]/ - Rama base resuelta (reflog, config o confirmación del usuario)
- Idioma de preferencia determinado y actualizado si fue necesario
.agents/MEMORY.md
Validación:
- sin salida (working tree limpio)
git status --porcelain - existe en la carpeta de la US
progress.md - Todas las tareas de en estado
progress.mdDone - ejecutado con veredicto ✅ Apto
code-review - Sin commits sin commitear ni stash sin aplicar relevante al alcance
Ejecución:
- exitoso
git checkout <base> - exitoso, sin conflictos
git merge --no-ff - Hash del commit de merge capturado para el reporte
- Número de commits integrados calculado antes del checkout
Cierre:
- Reporte al usuario con rama origen, rama destino, commits integrados y hash de merge
- Sin push ejecutado
- Sin borrado de rama ejecutado
- no fue modificado por el skill
progress.md
信息确认:
- 已检测当前分支并验证符合格式
feature/US-XXX-[nombre-corto] - 已定位用户故事文件夹至
docs/specs/user-stories/US-XXX-[nombre-corto]/ - 已确定基础分支(通过reflog、配置或用户确认)
- 已确定偏好语言,必要时已更新
.agents/MEMORY.md
验证项:
- 无输出(工作区干净)
git status --porcelain - 用户故事文件夹中存在
progress.md - 中的所有任务均处于
progress.md状态Done - 已执行且结果为**✅ 通过**
code-review - 无与提交范围相关的未提交内容或未应用的stash
执行项:
- 执行成功
git checkout <base> - 执行成功且无冲突
git merge --no-ff - 已捕获合并提交的哈希值用于报告
- 切换分支前已计算集成的提交数量
收尾项:
- 已向用户报告源分支、目标分支、集成的提交数量及合并哈希值
- 未执行push操作
- 未执行分支删除操作
- 未修改
progress.md
Ejemplos
示例
Ejemplo 1 — Camino feliz
- Entrada: Rama , working tree limpio,
feature/US-042-exportacion-csvcon tres tareas todas enprogress.md, reflog indicaDone.Created from develop - Salida: →
git checkout develop→ reporte: «Merged 7 commits degit merge --no-ff feature/US-042-exportacion-csv -m "Merge US-042: exportacion-csv"→feature/US-042-exportacion-csv. Commit de merge:develop. HEAD ena1b2c3d, working tree limpio. La rama de US no fue borrada ni se hizo push.»develop
Ejemplo 2 — Tarea pendiente
- Entrada: Rama , working tree limpio,
feature/US-013-ajuste-permisoscon TK-001 enprogress.mdy TK-002 enDone.In Progress - Salida: Sin operaciones git. Mensaje:
⚠️ No es posible mergear todavía: - progress.md tiene tareas no Done: - TK-001: Done - TK-002: In Progress - Completa o marca explícitamente cada tarea como Done antes de reintentar.
Ejemplo 3 — Rama base ambigua
- Entrada: Rama , reflog sin entrada
feature/US-077-..., sin upstream local; existenCreated from,mainydevelopcomo ancestros plausibles.release/2026.q2 - Comportamiento: El agente lista los candidatos y pregunta cuál es la rama base correcta. No asume ni
main. No mergea hasta tener respuesta.develop
Ejemplo 4 — Working tree sucio
- Entrada: Rama , dos archivos modificados sin commitear,
feature/US-051-...íntegro enprogress.md.Done - Salida: Sin operaciones git. Mensaje listando los archivos pendientes y pidiendo commit, stash o descarte antes de reintentar.
Ejemplo 5 — Conflicto en el merge
- Entrada: Verificaciones OK, rama base ,
mainproduce conflictos engit merge --no-ff.src/app/Module.java - Comportamiento: El agente ejecuta , deja el repo en el estado previo, lista los archivos en conflicto y pide al usuario resolverlos manualmente. No reintenta.
git merge --abort
Ejemplo 6 — Rama sin prefijo
feature/- Entrada: Rama (sin el prefijo
US-099-cleanup-logs),feature/íntegro enprogress.md.Done - Salida: Sin operaciones git. Mensaje: «La rama actual no cumple el patrón
US-099-cleanup-logs. Renombra la rama confeature/US-XXX-[nombre-corto]antes de reintentar el submit.»git branch -m feature/US-099-cleanup-logs
示例1 — 顺畅流程
- 输入:分支为,工作区干净,
feature/US-042-exportacion-csv中的三个任务均处于progress.md状态,reflog显示Done。Created from develop - 输出:执行→
git checkout develop→ 报告:«已将git merge --no-ff feature/US-042-exportacion-csv -m "Merge US-042: exportacion-csv"的7个提交合并至feature/US-042-exportacion-csv。合并提交哈希值:develop。HEAD位于a1b2c3d,工作区干净。用户故事分支未被删除,未执行push操作。»develop
示例2 — 存在未完成任务
- 输入:分支为,工作区干净,
feature/US-013-ajuste-permisos中TK-001处于progress.md状态,TK-002处于Done状态。In Progress - 输出:未执行任何Git操作。消息:
⚠️ 暂时无法合并: - progress.md存在未完成任务: - TK-001: Done - TK-002: In Progress - 请完成所有任务或明确标记为Done后重试。
示例3 — 基础分支模糊
- 输入:分支为,reflog无
feature/US-077-...记录,无本地上游分支;Created from、main和develop均为合理的祖先分支。release/2026.q2 - 行为:Agent列出候选分支并询问用户正确的基础分支。不会默认或
main。得到回复前不会执行合并。develop
示例4 — 工作区未清理
- 输入:分支为,两个文件已修改但未提交,
feature/US-051-...所有任务均处于progress.md状态。Done - 输出:未执行任何Git操作。消息列出未提交文件,并要求用户提交、暂存或丢弃更改后重试。
示例5 — 合并冲突
- 输入:所有验证通过,基础分支为,执行
main时git merge --no-ff产生冲突。src/app/Module.java - 行为:Agent执行,将仓库恢复到合并前状态,列出冲突文件并要求用户手动解决。不会重试。
git merge --abort
示例6 — 分支无前缀
feature/- 输入:分支为(无
US-099-cleanup-logs前缀),feature/所有任务均处于progress.md状态。Done - 输出:未执行任何Git操作。消息:«当前分支不符合
US-099-cleanup-logs格式。请先执行feature/US-XXX-[nombre-corto]重命名分支,再尝试提交。»git branch -m feature/US-099-cleanup-logs
Anti-patterns
反模式
- Hacer merge sin verificar o ignorando tareas no
progress.md.Done - Hacer merge sin haber ejecutado o con veredicto ❌ No apto / ⚠️ Incompleto — el merge solo procede con veredicto ✅ Apto.
code-review - Modificar para «forzar» que aparezcan en
progress.mdsin que el trabajo esté completo.Done - Aceptar ramas sin prefijo o con prefijos alternativos (
feature/,feat/,bugfix/) como rama de submit.hotfix/ - Asumir ,
mainomastercomo rama base sin confirmarlo por reflog, config o usuario.develop - Resolver conflictos automáticamente o usar /
--strategy=ourspara hacerlo pasar.--strategy=theirs - Usar merge fast-forward por defecto cuando el historial de la rama de US se perdería; preservar con salvo petición explícita del usuario.
--no-ff - Hacer push de la rama base o borrar la rama de la US sin que el usuario lo pida explícitamente fuera del skill.
- Mergear con working tree sucio o desde una rama que no encaja con .
feature/US-XXX-[nombre-corto] - Cerrar varias US en una sola pasada del skill; este flujo cubre una US por ejecución.
- Reintentar el merge tras un conflicto sin nueva instrucción del usuario.
- Narrar el trabajo realizado en el mensaje al usuario («leí progress.md», «detecté la rama»); solo reportar resultados y pendientes.
- Lanzar preguntas al usuario como prosa libre cuando el cliente expone una herramienta de preguntas estructuradas; preguntar la rama base sin listar candidatos como opciones tappables cuando la herramienta está disponible.
- 未验证或忽略未完成任务就执行合并。
progress.md - 未执行或评审结果为**❌ 不通过** / ⚠️ 未完成时执行合并——只有评审结果为**✅ 通过**才能执行合并。
code-review - 修改以“强制”任务显示为
progress.md,但实际工作未完成。Done - 接受无前缀或使用其他前缀(
feature/、feat/、bugfix/)的分支作为提交分支。hotfix/ - 未经reflog、配置或用户确认,就默认、
main或master为基础分支。develop - 自动解决冲突或使用/
--strategy=ours参数“蒙混过关”。--strategy=theirs - 默认使用快进合并,导致用户故事分支的历史丢失;除非用户明确要求,否则需使用参数保留历史。
--no-ff - 未经用户明确要求,就推送基础分支或删除用户故事分支。
- 工作区未清理或分支不符合格式时执行合并。
feature/US-XXX-[nombre-corto] - 一次提交多个用户故事;此流程每次仅处理一个用户故事。
- 发生冲突后未得到用户新指令就重试合并。
- 向用户描述内部操作过程(如“已读取progress.md”、“已检测分支”);仅需报告结果和待办事项。
- 客户提供结构化提问工具时,仍用自由文本提问;使用该工具时,询问基础分支需列出候选分支作为可点击选项。
Notas
说明
Handoffs del ciclo
流程交接
Posición: cierre local — último paso del pipeline de historias (sin push ni PR).
| Entrada | Rama |
| Salida | Merge |
| Siguiente paso (fuera del skill) | Push de la rama base y CI — decisión del usuario. |
PR/MR ( | Abrir antes de este skill, estando en |
| Regreso a implement | TK no |
| Regreso a define / plan | Alcance de US reducido o TK fuera de entrega → alinear con |
定位:本地收尾——用户故事流程的最后一步(不含push或PR)。
| 输入 | 分支为 |
| 输出 | 已在本地执行 |
| 后续步骤(Skill外) | 推送基础分支并执行CI——由用户决定。 |
PR/MR ( | 需在该Skill执行前打开,此时处于 |
| 返回实现阶段 | TK未标记为 |
| 返回定义/规划阶段 | 用户故事范围缩小或TK超出交付范围 → 与** |
progress.md
progress.md
El skill lee para verificar estados, pero no lo modifica. La actualización de estados durante la implementación es responsabilidad de story-implement. Si al revisar el archivo aparecen tareas en que sí están terminadas en código, el usuario debe corregir el archivo antes de reintentar el submit — no es papel del submit ajustar progreso.
progress.mdIn Progress该Skill仅读取以验证任务状态,不会修改它。实现过程中更新任务状态是story-implement的职责。若检查时发现中标记为的任务实际已在代码中完成,用户需先修正该文件,再尝试提交——提交操作不负责调整进度。
progress.mdprogress.mdIn ProgressEstados de progress.md
progress.mdprogress.md的任务状态
Estados válidos por tarea: , , . Solo (case-insensitive, sin espacios extra) cierra una tarea para merge.
PendingIn ProgressDoneDone任务的有效状态:、、。只有****(不区分大小写,无多余空格)表示任务已完成,可进行合并。
PendingIn ProgressDoneDoneDetección de rama base
基础分支检测
git reflog show <branch>gc.reflogExpiregit config --get branch.<branch>.mergegit reflog show <branch>gc.reflogExpiregit config --get branch.<branch>.mergeSin push intencional
不执行push操作的原因
La decisión de cuándo publicar el merge en el remoto queda fuera del skill, para preservar el control del usuario sobre integración con CI/CD, MRs/PRs y revisión. El mensaje final al usuario debe dejar explícito que el merge es solo local y que push y limpieza de ramas son pasos manuales posteriores.
何时将合并结果推送到远程仓库由用户决定,以保留用户对CI/CD集成、MR/PR和评审的控制权。最终需明确告知用户合并仅在本地完成,推送和分支清理是后续手动步骤。
Mensaje al usuario
用户消息规范
Solo resultados y lo que el usuario debe saber o decidir. No incluir razonamiento interno, cadenas de pensamiento ni narración del trabajo en curso. Si hay condiciones que bloquean el merge, listarlas en viñetas con detalle suficiente para que el usuario pueda actuar (qué archivos, qué tareas, qué estados).
仅需告知用户结果及需要了解或决定的内容。不得包含内部推理、思考过程或操作描述。若存在阻止合并的条件,需列出具体细节(如哪些文件、哪些任务、什么状态),以便用户采取行动。