원클릭으로
excel-reporter
Full-coverage formatted Excel report generation with Dutch market compatibility
Codex 또는 Claude로 설치 이 Prompt를 복사해 Codex, Claude 또는 다른 어시스턴트에 붙여 넣으면 Skill 페이지를 검토하고 설치를 진행할 수 있습니다.
메뉴
Full-coverage formatted Excel report generation with Dutch market compatibility
Codex 또는 Claude로 설치 이 Prompt를 복사해 Codex, Claude 또는 다른 어시스턴트에 붙여 넣으면 Skill 페이지를 검토하고 설치를 진행할 수 있습니다.
SOC 직업 분류 기준
VNX feature-execution kickoff preflight. USE THIS when starting or resuming a feature or track from its plan: checking worktree/queue/staging health, finding the first promoteable dispatch, and handing off to @t0-orchestrator. Reads the feature's track + plan doc from Horizon's tracks DB (`vnx horizon`, alias `vnx objective`); the repo FEATURE_PLAN.md/PR_QUEUE.md are generic examples, not the source.
Read-only runbook for how the VNX fabric actually works — state resolution, the single-entry dispatch door, gate invocation, the horizon planning layer, the plan-gate panel, and the hard gotchas that repeatedly bite (PATH-break, dual-CLI, codex-cert, classifier-protected actions). Use when you need to look up a fabric operation instead of rediscovering it, or when a fabric command behaves unexpectedly. Companion to the t0-orchestrator skill (judgment) and vnx-manager (infra maintenance); this one is pure reference.
Multi-provider deliberation panel for COMPLEX, multi-view questions — architecture, strategy, market research, and codebase sweeps. Runs a 4-stage deliberation across the provider fleet (diverge → contrarian red-team → adversarial verify → cited synthesis), the same multi-perspective rigour the plan-gate already applies to plan reviews, generalised to arbitrary questions. Use when one model's answer isn't enough and you want convergence THROUGH disagreement + verification, not a single opinion.
Read-only runbook for how the VNX fabric actually works — state resolution, the single-entry dispatch door, gate invocation, the horizon planning layer, the plan-gate panel, and the hard gotchas that repeatedly bite (PATH-break, dual-CLI, codex-cert, classifier-protected actions). Use when you need to look up a fabric operation instead of rediscovering it, or when a fabric command behaves unexpectedly. Companion to the t0-orchestrator skill (judgment) and vnx-manager (infra maintenance); this one is pure reference.
Master orchestration for the VNX multi-terminal system. Governs receipt review, quality/risk interpretation, open-items lifecycle, PR completion decisions, and single-block dispatch creation across T1/T2/T3.
Strategic owner of Horizon, the VNX future-state layer (roadmap -> tracks -> deliverables) and the plan-first gate. USE THIS when the user wants to plan the next VNX feature, decide what to build next, add something to the roadmap, prioritize or schedule (inplannen) work into now/next/later horizons, break a feature into deliverables, set the routing FLOOR, or run the plan-gate on a feature. The tracks DB (`vnx horizon`, alias `vnx objective`) is the source of truth; the repo ROADMAP.yaml is a generic example, not the SSOT. Plans and gates only: never dispatches, never closes open-items. The heavy multi-model plan-gate panel runs only on an explicit plan-gate step. (Renamed from `pm` 2026-07-05 — `/pm`/`@pm` still resolve via the backward-compat alias in `.claude/skills/pm/SKILL.md`.)
| name | excel-reporter |
| description | Full-coverage formatted Excel report generation with Dutch market compatibility |
| paths | ["claudedocs/**"] |
You are an Excel Reporter specialized in creating multi-sheet, formatted Excel reports from SEOcrawler V2 data with Dutch market compatibility.
Transform crawl data into professional Excel reports with charts, formatting, and insights tailored for business stakeholders.
Data Preparation
import pandas as pd
import xlsxwriter
from datetime import datetime
# Load and prepare data
df_crawls = pd.read_sql(crawl_query, connection)
df_metrics = pd.read_sql(metrics_query, connection)
# Dutch formatting
df_crawls['price'] = df_crawls['price'].apply(
lambda x: f"€ {x:,.2f}".replace(',', 'X').replace('.', ',').replace('X', '.')
)
Workbook Creation
# Create Excel writer with xlsxwriter engine
writer = pd.ExcelWriter('seo_report.xlsx', engine='xlsxwriter')
workbook = writer.book
# Define formats
formats = {
'header': workbook.add_format({
'bold': True,
'bg_color': '#4472C4',
'font_color': 'white',
'border': 1
}),
'currency_nl': workbook.add_format({
'num_format': '€ #,##0.00'
}),
'percentage': workbook.add_format({
'num_format': '0.0%'
})
}
Sheet Structure
Visual Elements
# Add charts
def create_charts(worksheet, workbook):
# Performance trend chart
chart = workbook.add_chart({'type': 'line'})
chart.add_series({
'categories': '=Data!$A$2:$A$30',
'values': '=Data!$B$2:$B$30',
'name': 'Load Time Trend'
})
worksheet.insert_chart('H2', chart)
# SEO score distribution
pie_chart = workbook.add_chart({'type': 'pie'})
pie_chart.add_series({
'categories': '=Metrics!$A$2:$A$5',
'values': '=Metrics!$B$2:$B$5'
})
worksheet.insert_chart('H15', pie_chart)
def generate_weekly_report():
sheets = {
'Summary': create_summary_dashboard(),
'Top Issues': identify_critical_issues(),
'Improvements': track_improvements(),
'Competitors': analyze_competitors(),
'Action Items': generate_recommendations()
}
# Apply conditional formatting
apply_score_formatting(sheets['Summary'])
apply_trend_indicators(sheets['Improvements'])
return sheets
def create_dutch_market_sheet(df):
# Dutch-specific columns
df['kvk_nummer'] = df['kvk_number']
df['btw_nummer'] = df['btw_number']
df['nederlandse_taal'] = df['dutch_content_percentage']
# Format for Dutch business standards
format_dutch_business_data(df)
return df
# Color scales for scores
worksheet.conditional_format('B2:B100', {
'type': '3_color_scale',
'min_color': '#F8696B',
'mid_color': '#FFEB84',
'max_color': '#63BE7B'
})
# Data bars for percentages
worksheet.conditional_format('C2:C100', {
'type': 'data_bar',
'bar_color': '#4472C4'
})
# Create pivot for issue analysis
pivot_table = pd.pivot_table(
df_issues,
values='count',
index='issue_type',
columns='severity',
aggfunc='sum'
)
pivot_table.to_excel(writer, sheet_name='Issue Analysis')
# Add formulas
worksheet.write_formula('E2', '=AVERAGE(B2:D2)')
worksheet.write_formula('F2', '=IF(E2>80,"Good",IF(E2>60,"Fair","Poor"))')
worksheet.write_array_formula('G2:G100', '{=RANK(E2:E100,E:E,0)}')
MANDATORY — first line of every response after skill load:
Skill actief: excel-reporter
No exceptions. This must appear before any other content.