Communitygithub.com

AmanVarshney01/tcut

Sincroniza especificaciones delta desde un cambio hacia las especificaciones principales. Se usa cuando el usuario desea actualizar las especificaciones principales con los cambios de una especificación delta, sin archivar el cambio.

¿Qué es tcut?

Este skill permite sincronizar cambios desde una especificación delta (definida en un cambio de OpenSpec) hacia las especificaciones principales del repositorio, mediante un proceso inteligente y dirigido por el agente. Es útil para desarrolladores y equipos que gestionan requisitos con OpenSpec y desean aplicar actualizaciones parciales (como añadir o modificar escenarios) sin sobrescribir el contenido existente. El agente lee tanto la especificación delta como la principal, aplica las secciones ADDED, MODIFIED, REMOVED y RENAMED de manera sensible, y preserva el resto del contenido. Soporta selección de almacenes (`--store`) y trabaja con el CLI de OpenSpec (`openspec list`, `status`). Es idempotente y ofrece un resumen claro de las modificaciones realizadas.

Compatible con~Claude Code~Codex CLI~Cursor
npx skills add https://github.com/AmanVarshney01/tcut/tree/HEAD/.claude/skills/openspec-sync-specs

Preguntar en tu IA favorita

Abre un nuevo chat con esta habilidad de agente ya precargada.

Documentación

Sincroniza especificaciones delta desde un cambio hacia las especificaciones principales.

Esta es una operación dirigida por el agente: leerás las especificaciones delta y editarás directamente las especificaciones principales para aplicar los cambios. Esto permite una fusión inteligente (por ejemplo, añadir un escenario sin copiar todo el requisito).

Selección de almacén: Si el usuario nombra un almacén (un repositorio OpenSpec independiente registrado en esta máquina) o el trabajo está en uno, ejecuta openspec store list --json para descubrir los IDs de almacenes registrados, luego pasa --store <id> en los comandos que leen o escriben especificaciones y cambios (new change, status, instructions, list, show, validate, archive, doctor, context). Otros comandos no toman esta bandera. Las sugerencias impresas por los comandos ya incluyen la bandera; mantenla en los seguimientos. Sin un almacén, los comandos actúan sobre la raíz local más cercana de openspec/.

Entrada: Opcionalmente, especifica un nombre de cambio. Si se omite, verifica si se puede deducir del contexto de la conversación. Si es vago o ambiguo, DEBES preguntar por los cambios disponibles.

Pasos

  1. Si no se proporciona un nombre de cambio, solicitar selección

    Ejecuta openspec list --json para obtener los cambios disponibles. Usa la herramienta AskUserQuestion para que el usuario seleccione.

    Muestra los cambios que tienen especificaciones delta (bajo el directorio specs/).

    IMPORTANTE: No adivines ni selecciones automáticamente un cambio. Siempre deja que el usuario elija.

  2. Resolver el contexto del cambio

    Ejecuta:

    openspec status --change "<nombre>" --json
    
  3. Encontrar especificaciones delta

    Usa artifactPaths.specs.existingOutputPaths del JSON de estado como la lista de archivos de especificaciones delta.

    Cada archivo de especificación delta contiene secciones como:

    • ## ADDED Requirements - Nuevos requisitos para añadir
    • ## MODIFIED Requirements - Cambios a requisitos existentes
    • ## REMOVED Requirements - Requisitos para eliminar
    • ## RENAMED Requirements - Requisitos para renombrar (formato FROM:/TO:)

    Si no se encuentran especificaciones delta, informa al usuario y detente.

  4. Para cada especificación delta, aplicar cambios a las especificaciones principales

    Para cada ruta de especificación delta de capacidad local al repositorio devuelta por el CLI:

    a. Leer la especificación delta para entender los cambios previstos

    b. Leer la especificación principal en openspec/specs/<capacidad>/spec.md (puede que aún no exista)

    c. Aplicar cambios de forma inteligente:

    ADDED Requirements:

    • Si el requisito no existe en la especificación principal → añadirlo
    • Si el requisito ya existe → actualizarlo para que coincida (tratar como MODIFIED implícito)

    MODIFIED Requirements:

    • Encontrar el requisito en la especificación principal
    • Aplicar los cambios - esto puede incluir:
      • Añadir nuevos escenarios (no es necesario copiar los existentes)
      • Modificar escenarios existentes
      • Cambiar la descripción del requisito
    • Preservar escenarios/contenido no mencionado en la delta

    REMOVED Requirements:

    • Eliminar todo el bloque del requisito de la especificación principal

    RENAMED Requirements:

    • Encontrar el requisito FROM, renombrarlo a TO

    d. Crear nueva especificación principal si la capacidad aún no existe:

    • Crear openspec/specs/<capacidad>/spec.md
    • Añadir sección de Propósito (puede ser breve, marcar como TBD)
    • Añadir sección de Requisitos con los requisitos ADDED
  5. Mostrar resumen

    Después de aplicar todos los cambios, resume:

    • Qué capacidades se actualizaron
    • Qué cambios se hicieron (requisitos añadidos/modificados/eliminados/renombrados)

Formato de referencia de especificación delta

## ADDED Requirements

### Requirement: Nueva Funcionalidad
El sistema DEBE hacer algo nuevo.

#### Scenario: Caso básico
- **WHEN** el usuario hace X
- **THEN** el sistema hace Y

## MODIFIED Requirements

### Requirement: Funcionalidad Existente
#### Scenario: Nuevo escenario a añadir
- **WHEN** el usuario hace A
- **THEN** el sistema hace B

## REMOVED Requirements

### Requirement: Funcionalidad Obsoleta

## RENAMED Requirements

- FROM: `### Requirement: Nombre Antiguo`
- TO: `### Requirement: Nombre Nuevo`

Principio clave: Fusión inteligente

A diferencia de la fusión programática, puedes aplicar actualizaciones parciales:

  • Para añadir un escenario, solo incluye ese escenario bajo MODIFIED - no copies escenarios existentes
  • La delta representa la intención, no un reemplazo completo
  • Usa tu criterio para fusionar los cambios de manera sensata

Salida en caso de éxito

## Especificaciones sincronizadas: <nombre-cambio>

Especificaciones principales actualizadas:

**<capacidad-1>**:
- Requisito añadido: "Nueva Funcionalidad"
- Requisito modificado: "Funcionalidad Existente" (añadido 1 escenario)

**<capacidad-2>**:
- Nuevo archivo de especificación creado
- Requisito añadido: "Otra Funcionalidad"

Las especificaciones principales están actualizadas. El cambio permanece activo: archívalo cuando la implementación esté completa.

Medidas de seguridad

  • Lee tanto las especificaciones delta como las principales antes de hacer cambios
  • Preserva el contenido existente no mencionado en la delta
  • Si algo no está claro, pide aclaración
  • Muestra lo que estás cambiando a medida que avanzas
  • La operación debe ser idempotente: ejecutarla dos veces debe dar el mismo resultado

Individual skills in this repo

This repo contains 7 individual skills — each has its own dedicated page.

AmanVarshney01/tcut

Implement tasks from an OpenSpec change. Use when the user wants to start implementing, continue implementation, or work through tasks.

AmanVarshney01/tcut

Archive a completed change in the experimental workflow. Use when the user wants to finalize and archive a change after implementation is complete.

AmanVarshney01/tcut

Enter explore mode - a thinking partner for exploring ideas, investigating problems, and clarifying requirements. Use when the user wants to think through something before or during a change.

AmanVarshney01/tcut

Propose a new change with all artifacts generated in one step. Use when the user wants to quickly describe what they want to build and get a complete proposal with design, specs, and tasks ready for implementation.

AmanVarshney01/tcut

Update an OpenSpec change by revising its existing planning artifacts and keeping them coherent with one another. Use when the user wants to revise a change's plan, fold new decisions into it, or reconcile its artifacts after an edit. Never edits code.

AmanVarshney01/tcut

Combine tcut terminal recordings with Remotion to produce polished, motion-designed launch/promo videos (title cards, animated captions, layered terminal footage). Use when the user wants a product video, launch video, or social video that features terminal/CLI footage.

AmanVarshney01/tcut

Record reproducible terminal videos (MP4/GIF/SVG/HTML) from TypeScript scripts or live sessions with the tcut CLI. Use when the user wants a terminal demo, CLI screencast, TUI recording, or animated terminal GIF for a README, website, or social post.

Skills relacionados