MCP HubMCP Hub
스킬 목록으로 돌아가기

setup-putior-ci

pjt222
업데이트됨 Yesterday
6 조회
17
2
17
GitHub에서 보기
디자인automationdesign

정보

이 Claude Skill은 모든 푸시(push)마다 GitHub Actions CI/CD를 자동으로 설정하여 putior 워크플로우 다이어그램을 재생성합니다. 워크플로우 YAML, 센티넬 마커가 포함된 R 생성 스크립트를 만들고, 업데이트된 다이어그램을 자동으로 커밋하며, README에 마커를 통합하여 제자리 업데이트를 수행합니다. 워크플로우 다이어그램이 항상 최신 코드를 반영해야 하거나, 여러 기여자가 워크플로우에 영향을 주는 코드를 수정하는 경우, 또는 수동 다이어그램 재생성을 자동화된 CI/CD로 대체할 때 사용하세요.

빠른 설치

Claude Code

추천
기본
npx skills add pjt222/agent-almanac -a claude-code
플러그인 명령대체
/plugin add https://github.com/pjt222/agent-almanac
Git 클론대체
git clone https://github.com/pjt222/agent-almanac.git ~/.claude/skills/setup-putior-ci

Claude Code에서 이 명령을 복사하여 붙여넣어 스킬을 설치하세요

문서

Set Up putior CI/CD

Configurar GitHub Actions para regenerar automáticamente diagramas de flujo de trabajo cuando el código fuente cambia, manteniendo la documentación sincronizada con el código.

Cuándo Usar

  • Los diagramas de flujo de trabajo deben siempre reflejar el estado actual del código
  • El proyecto tiene CI/CD y desea actualizaciones automáticas de documentación
  • Múltiples contribuidores pueden cambiar código que afecta el flujo de trabajo
  • Reemplazar la regeneración manual de diagramas con un pipeline automatizado

Entradas

  • Requerido: Repositorio de GitHub con anotaciones putior en archivos fuente
  • Requerido: Archivo destino para la salida del diagrama (ej., README.md, docs/workflow.md)
  • Opcional: Tema de putior (por defecto: "github")
  • Opcional: Directorios fuente a escanear (por defecto: "./R/" o "./src/")
  • Opcional: Rama para activar (por defecto: main)

Procedimiento

Paso 1: Crear el Workflow de GitHub Actions

Crear el archivo YAML del workflow para generación automatizada de diagramas.

# .github/workflows/update-workflow-diagram.yml
name: Update Workflow Diagram

on:
  push:
    branches: [main]
    paths:
      - 'R/**'
      - 'src/**'
      - 'scripts/**'

permissions:
  contents: write

jobs:
  update-diagram:
    if: github.actor != 'github-actions[bot]'
    runs-on: ubuntu-latest

    steps:
      - uses: actions/checkout@v4

      - uses: r-lib/actions/setup-r@v2
        with:
          use-public-rspm: true

      - name: Install putior
        run: |
          install.packages("putior")
        shell: Rscript {0}

      - name: Generate workflow diagram
        run: |
          Rscript scripts/generate-workflow-diagram.R

      - name: Commit updated diagram
        run: |
          git config --local user.name "github-actions[bot]"
          git config --local user.email "github-actions[bot]@users.noreply.github.com"
          git add README.md docs/workflow.md  # Adjust to match your target files
          git diff --staged --quiet || git commit -m "docs: update workflow diagram [skip ci]"
          git push

Esperado: Archivo creado en .github/workflows/update-workflow-diagram.yml.

En caso de fallo: Asegurar que el directorio .github/workflows/ exista. Ajustar el filtro paths para coincidir con donde viven los archivos fuente anotados en el repositorio.

Paso 2: Escribir el Script de Generación

Crear el script R que genera el diagrama y actualiza los archivos destino usando marcadores centinela.

# scripts/generate-workflow-diagram.R
library(putior)

# Scan source files for annotations (exclude build scripts to avoid circular refs)
workflow <- put_merge("./R/", merge_strategy = "supplement",
  exclude = c("generate-workflow-diagram\\.R$"),
  log_level = NULL)  # Set to "DEBUG" to troubleshoot CI diagram generation

# Generate Mermaid code
mermaid_code <- put_diagram(workflow, output = "raw", theme = "github")

# Read target file (e.g., README.md)
readme <- readLines("README.md")

# Find sentinel markers
start_marker <- "<!-- PUTIOR-WORKFLOW-START -->"
end_marker <- "<!-- PUTIOR-WORKFLOW-END -->"

start_idx <- which(readme == start_marker)
end_idx <- which(readme == end_marker)

if (length(start_idx) == 1 && length(end_idx) == 1 && end_idx > start_idx) {
  # Replace content between sentinels
  new_content <- c(
    readme[1:start_idx],
    "",
    "```mermaid",
    mermaid_code,
    "```",
    "",
    readme[end_idx:length(readme)]
  )
  writeLines(new_content, "README.md")
  cat("Updated README.md workflow diagram\n")
} else {
  warning("Sentinel markers not found in README.md. Add them manually:\n",
          start_marker, "\n", end_marker)
}

# Also write standalone diagram file
writeLines(
  c("# Workflow Diagram", "",
    "```mermaid", mermaid_code, "```"),
  "docs/workflow.md"
)
cat("Updated docs/workflow.md\n")

Esperado: Script en scripts/generate-workflow-diagram.R que lee anotaciones, genera código Mermaid y reemplaza contenido entre marcadores centinela.

En caso de fallo: Si put_merge() retorna vacío, verificar que las rutas fuente coincidan con la estructura del repositorio. Ajustar "./R/" al directorio fuente real.

Paso 3: Configurar Auto-Commit

El workflow debe evitar bucles infinitos donde un auto-commit re-activa el mismo workflow. Los pushes hechos con el GITHUB_TOKEN por defecto típicamente no activan nuevas ejecuciones del workflow, pero el workflow también incluye una guarda explícita if: en el job como red de seguridad.

Puntos clave de configuración:

  • permissions: contents: write otorga acceso de push
  • if: github.actor != 'github-actions[bot]' omite el job cuando el push proviene del bot mismo
  • git diff --staged --quiet || git commit solo hace commit si hay cambios
  • [skip ci] en el mensaje de commit es una convención que algunos sistemas CI honran (no está integrado en GitHub Actions, pero es útil como señal)
  • Identidad del bot usada para commits: github-actions[bot]

Esperado: El workflow solo hace commit cuando los diagramas realmente cambian. Sin commits vacíos, sin bucles infinitos.

En caso de fallo: Si el push falla con permiso denegado, verificar la configuración del repositorio: Settings > Actions > General > Workflow permissions debe estar configurado como "Read and write permissions".

Paso 4: Agregar Marcadores Centinela al README

Insertar marcadores centinela en el archivo destino donde el diagrama debe aparecer.

## Workflow

<!-- PUTIOR-WORKFLOW-START -->
<!-- This section is auto-generated by putior CI. Do not edit manually. -->

```mermaid
flowchart TD
  A["Placeholder — will be replaced on next CI run"]
<!-- PUTIOR-WORKFLOW-END -->

**Esperado:** Marcadores centinela en README.md (u otro archivo destino). El contenido entre ellos será reemplazado en cada ejecución de CI.

**En caso de fallo:** Asegurar que los marcadores estén en sus propias líneas sin espacios iniciales/finales. El script busca coincidencia exacta del contenido de la línea.

### Paso 5: Probar el Pipeline

Activar el workflow y verificar que el diagrama se actualice.

```bash
# Make a small change to trigger the workflow
echo "# test" >> R/some-file.R
git add R/some-file.R
git commit -m "test: trigger workflow diagram update"
git push

# Monitor the GitHub Actions run
gh run watch

# Verify the diagram was updated
git pull
cat README.md | grep -A 5 "PUTIOR-WORKFLOW-START"

Esperado: La ejecución de GitHub Actions se completa exitosamente. El diagrama entre marcadores centinela en README.md se actualiza con los datos de flujo de trabajo actuales.

En caso de fallo: Verificar el log de Actions para errores. Problemas comunes:

  • Paquete putior no disponible: agregar a Suggests en DESCRIPTION o instalar explícitamente en el workflow
  • Ruta fuente incorrecta: la ruta de put_merge() en el script R debe ser relativa a la raíz del repositorio
  • Sin marcadores centinela: el script avisa pero no falla; agregar marcadores al README.md

Validación

  • .github/workflows/update-workflow-diagram.yml existe y es YAML válido
  • scripts/generate-workflow-diagram.R se ejecuta sin errores localmente
  • README.md contiene centinelas <!-- PUTIOR-WORKFLOW-START --> y <!-- PUTIOR-WORKFLOW-END -->
  • El workflow de GitHub Actions se activa con push a la rama y rutas correctas
  • El contenido del diagrama entre centinelas se actualiza después de una ejecución del workflow
  • La guarda if: a nivel de job previene bucles infinitos de commits del bot
  • Sin cambios = sin commit (idempotente)

Errores Comunes

  • Bucles infinitos de CI: Los pushes con el GITHUB_TOKEN por defecto típicamente no activan nuevas ejecuciones, pero siempre agregar una guarda explícita if: github.actor != 'github-actions[bot]' en el job. La etiqueta [skip ci] en el mensaje de commit es una convención útil pero no es un mecanismo integrado de GitHub Actions.
  • Permiso denegado en push: GitHub Actions necesita permiso de escritura. Configurar permissions: contents: write en el archivo de workflow, o configurarlo en la configuración del repositorio.
  • Desajuste de marcadores centinela: Si los marcadores tienen espacios finales, tabulaciones iniciales o están en la misma línea que otro contenido, el script no los encontrará. Mantener los marcadores en sus propias líneas limpias.
  • Desajuste de ruta fuente: El script R se ejecuta desde la raíz del repositorio. Rutas como "./R/" o "./src/" deben coincidir con la estructura de directorios real.
  • Instalación de paquetes en CI: Si el proyecto usa renv, el workflow de CI necesita renv::restore() antes de que putior esté disponible. Alternativamente, instalar putior explícitamente en el workflow.
  • Repos grandes ralentizando CI: Para repos con muchos archivos fuente, limitar el filtro de activación paths a directorios que contengan anotaciones PUT, no el repositorio completo.

Habilidades Relacionadas

  • generate-workflow-diagram — la versión manual de lo que este CI automatiza
  • setup-github-actions-ci — configuración general de GitHub Actions CI/CD para paquetes R
  • build-ci-cd-pipeline — diseño más amplio de pipelines CI/CD
  • annotate-source-files — las anotaciones deben existir antes de que CI pueda generar diagramas
  • commit-changes — entender patrones de auto-commit

GitHub 저장소

pjt222/agent-almanac
경로: i18n/es/skills/setup-putior-ci
0
agentsagentskillsai-assisted-developmentclaude-codeskillsteams

연관 스킬

executing-plans

디자인

executing-plans 스킬은 검토 체크포인트가 포함된 통제된 배치로 실행할 완전한 구현 계획이 있을 때 사용합니다. 이 스킬은 계획을 불러와 비판적으로 검토한 후, 소규모 배치(기본값 3개 작업)로 작업을 실행하면서 각 배치 사이에 진행 상황을 아키텍트 검토를 위해 보고합니다. 이를 통해 내재된 품질 관리 체크포인트를 갖춘 체계적인 구현이 보장됩니다.

스킬 보기

requesting-code-review

디자인

이 스킬은 코드 변경 사항을 요구 사항에 따라 분석하기 위해 코드 리뷰어 하위 에이전트를 호출합니다. 작업 완료 후, 주요 기능 구현 후, 또는 메인 브랜치에 병합하기 전에 사용해야 합니다. 이 리뷰는 현재 구현체와 원래 계획을 비교하여 문제를 조기에 발견하는 데 도움이 됩니다.

스킬 보기

connect-mcp-server

디자인

이 스킬은 개발자들이 HTTP, stdio 또는 SSE 전송 방식을 통해 MCP 서버를 Claude Code에 연결하는 포괄적인 가이드를 제공합니다. GitHub, Notion 및 사용자 정의 API와 같은 외부 서비스를 통합하기 위한 설치, 구성, 인증 및 보안을 다룹니다. MCP 통합 설정, 외부 도구 구성 또는 Claude의 모델 컨텍스트 프로토콜 작업 시 활용하세요.

스킬 보기

web-cli-teleport

디자인

이 스킬은 작업 분석을 기반으로 개발자가 Claude Code 웹 인터페이스와 CLI 인터페이스 중 선택할 수 있도록 돕고, 두 환경 간 원활한 세션 텔레포트를 가능하게 합니다. 웹, CLI 또는 모바일 환경 전환 시 세션 상태와 컨텍스트를 관리하여 워크플로를 최적화합니다. 다양한 단계에서 서로 다른 도구가 필요한 복잡한 프로젝트에 사용하세요.

스킬 보기