build-parameterized-report
정보
이 스킬은 개발자가 다양한 입력값으로 프로그래밍 방식으로 렌더링하여 여러 보고서 변형을 생성할 수 있는 매개변수화된 Quarto 또는 R Markdown 보고서를 만들 수 있게 해줍니다. 매개변수 정의, 배치 생성, 단일 템플릿에서 반복 보고서 자동화를 다룹니다. 부서별 보고서, 고객별 대시보드 생성, 또는 다양한 기간이나 데이터 하위 집합을 활용한 보고서 자동화에 사용하세요.
빠른 설치
Claude Code
추천npx skills add pjt222/agent-almanac -a claude-code/plugin add https://github.com/pjt222/agent-almanacgit clone https://github.com/pjt222/agent-almanac.git ~/.claude/skills/build-parameterized-reportClaude Code에서 이 명령을 복사하여 붙여넣어 스킬을 설치하세요
문서
Build Parameterized Report
建可接參數之報告,自一模板生多定制變體。
適用時機
- 為不同部門、地區、時期生同一報告
- 自模板生客戶專之報告
- 建濾特定子集之儀表板
- 自動化以不同輸入之循環報告
輸入
- 必要:報告模板(Quarto 或 R Markdown)
- 必要:參數定義(名、類型、預設)
- 選擇性:批生之參數值列
- 選擇性:所生報告之輸出目錄
步驟
步驟一:於 YAML 定參數
Quarto(report.qmd):
---
title: "Sales Report: `r params$region`"
params:
region: "North America"
year: 2025
include_forecast: true
format:
html:
toc: true
---
R Markdown(report.Rmd):
---
title: "Sales Report"
params:
region: "North America"
year: 2025
include_forecast: true
output: html_document
---
預期: YAML 首部含 params: 塊,其中有名參數,各具正類預設值。
失敗時: 渲染失「object 'params' not found」時,確 params: 塊於 YAML 首部下正縮進。Quarto 中,params 當於 YAML 頂層,非嵌於 format: 下。
步驟二:於代碼中用參數
```{r}
#| label: filter-data
data <- full_dataset |>
filter(region == params$region, year == params$year)
nrow(data)
```
## Overview for `r params$region`
This report covers the `r params$region` region for `r params$year`.
```{r}
#| label: forecast
#| eval: !expr params$include_forecast
# This chunk only runs when include_forecast is TRUE
forecast_model <- forecast::auto.arima(data$sales)
forecast::autoplot(forecast_model)
```
預期: 代碼塊透過 params$name 引參數,條件塊於 Quarto 用 #| eval: !expr params$flag。行內 R 表達式如 `r params$region` 生動態文字。
失敗時: 若 params$name 返 NULL,驗參數名與 YAML 定義中代碼引之完全相符(大小寫敏感)。查預設值為正類。
步驟三:以自訂參數渲染
單次渲染:
# Quarto
quarto::quarto_render(
"report.qmd",
execute_params = list(region = "Europe", year = 2025)
)
# R Markdown
rmarkdown::render(
"report.Rmd",
params = list(region = "Europe", year = 2025),
output_file = "report-europe-2025.html"
)
預期: 單報告以自訂參數值覆 YAML 預設而成渲染。輸出文件於所指路徑生成。
失敗時: 若 Quarto 渲染失,查 quarto CLI 已裝且於 PATH。若 R Markdown 渲染失,驗 rmarkdown 已裝。確 execute_params(Quarto)或 params(R Markdown)中參數名與 YAML 定義完全相符。
步驟四:批渲多報告
regions <- c("North America", "Europe", "Asia Pacific", "Latin America")
years <- c(2024, 2025)
# Generate all combinations
combinations <- expand.grid(region = regions, year = years, stringsAsFactors = FALSE)
# Render each
purrr::pwalk(combinations, function(region, year) {
output_name <- sprintf("report-%s-%d.html",
tolower(gsub(" ", "-", region)), year)
quarto::quarto_render(
"report.qmd",
execute_params = list(region = region, year = year),
output_file = output_name
)
})
預期: 每地區-年組合一 HTML 文件。
失敗時: 查參數名於 YAML 與代碼間完全相符。確所有參數值為有效。
步驟五:加參數驗證
#| label: validate-params
stopifnot(
"Region must be a valid region" = params$region %in% valid_regions,
"Year must be numeric" = is.numeric(params$year),
"Year must be reasonable" = params$year >= 2020 && params$year <= 2030
)
預期: 驗證代碼塊於每次渲染始執,任一參數超範圍或誤類即以明告止。
失敗時: 若 stopifnot() 之錯訊不助,改用明之 if (!cond) stop("message") 以明斷。
步驟六:組織輸出
# Create output directory
output_dir <- file.path("reports", format(Sys.Date(), "%Y-%m"))
dir.create(output_dir, recursive = TRUE, showWarnings = FALSE)
# Render with output path
quarto::quarto_render(
"report.qmd",
execute_params = list(region = region),
output_file = file.path(output_dir, paste0("report-", region, ".html"))
)
預期: 輸出文件寫入日期標之子目錄,以描述性名命(如 reports/2025-06/report-europe.html)。
失敗時: 若 dir.create() 失,查父目錄存且可寫。Windows 上驗路徑長不超 260 字元。
驗證
- 報告以預設參數渲染
- 報告以每組自訂參數渲染
- 參數於處理前驗證
- 輸出文件以描述性名命
- 條件部分依參數正渲染
- 批生於所有組合完成
常見陷阱
- 參數名失配:YAML 名須與代碼中
params$name引完全相符 - 類型強轉:YAML 或解
year: 2025為整數而代碼期字元。明示之 - 條件之評:Quarto 中用
#| eval: !expr params$flag,非eval = params$flag - 文件覆寫:無唯一輸出名時,每次渲染覆前次
- 批模式記憶:長批之運行或累記憶。考慮用
callr::r()以隔離
相關技能
create-quarto-report— 基礎 Quarto 文檔設置generate-statistical-tables— 隨參數調之表format-apa-report— 參數化學術報告
GitHub 저장소
연관 스킬
content-collections
메타이 스킬은 콘텐츠 콜렉션(Content Collections)을 위한 프로덕션 검증된 설정을 제공합니다. 콘텐츠 콜렉션은 Markdown/MDX 파일을 Zod 검증이 포함된 타입 안전한 데이터 콜렉션으로 변환해주는 TypeScript 최우선 도구입니다. 블로그, 문서 사이트 또는 콘텐츠 중심의 Vite + React 애플리케이션을 구축할 때 타입 안전성과 자동 콘텐츠 검증을 보장하기 위해 사용하세요. Vite 플러그인 구성과 MDX 컴파일부터 배포 최적화 및 스키마 검증에 이르기까지 모든 것을 다룹니다.
polymarket
메타이 스킬은 개발자들이 Polymarket 예측 시장 플랫폼을 활용한 애플리케이션을 구축할 수 있도록 지원하며, 거래 및 시장 데이터를 위한 API 통합 기능을 포함합니다. 또한 WebSocket을 통한 실시간 데이터 스트리밍을 제공하여 실시간 거래와 시장 활동을 모니터링할 수 있습니다. 이를 통해 거래 전략을 구현하거나 실시간 시장 업데이트를 처리하는 도구를 생성하는 데 활용할 수 있습니다.
creating-opencode-plugins
메타이 스킬은 개발자들이 명령어, 파일, LSP 작업 등 25개 이상의 이벤트 유형에 연결되는 OpenCode 플러그인을 만들 수 있도록 돕습니다. JavaScript/TypeScript 모듈을 위한 플러그인 구조, 이벤트 API 명세, 구현 패턴을 제공합니다. OpenCode AI 어시스턴트의 라이프사이클을 사용자 정의 이벤트 기반 로직으로 가로채거나, 모니터링하거나, 확장해야 할 때 사용하세요.
sglang
메타SGLang은 RadixAttention 프리픽스 캐싱을 활용하여 JSON, 정규식, 에이전트 워크플로우를 위한 고속 구조화 생성에 특화된 고성능 LLM 서빙 프레임워크입니다. 특히 반복되는 프리픽스가 있는 작업에서 상당히 빠른 추론 속도를 제공하여 복잡한 구조화 출력 및 다중 턴 대화에 이상적입니다. 제약 디코딩이 필요하거나 광범위한 프리픽스 공유가 있는 애플리케이션을 구축할 때는 vLLM과 같은 대안보다 SGLang을 선택하십시오.
