archive/tr_dashboard-main_20260203/agentskillguide/skills/agi-schedule-pipeline-check/SKILL.md
통합 파이프라인 3단계. 모든 AGI Schedule 파이프라인 작업 완료 후 전체 점검. 데이터·일정·공지·날씨·KPI·히트맵·이미지·Go/No-Go 안내 등 모든 단계가 체크리스트에 포함되도록 검사 및 수정.
npx skillsauth add macho715/trdash agi-schedule-pipeline-checkInstall this skill globally with one command. Works with Claude Code, Cursor, and Windsurf.
3 of 9 scanners reported clean
Some scanners were skipped, did not run, or reported a non-clean status. Review each row below.
AGI TR 1-6 Transportation Master Gantt Chart/files/ 내 모든 파이프라인 산출물files/AGI TR SCHEDULE_*.html사용자가 일정 변경을 요청하면, 대시보드의 모든 항목에 동일한 날짜가 적용되어야 한다:
| 대시보드 영역 | 포함 항목 | 점검 단계 | |---------------|-----------|-----------| | 7 Voyages Overview | voyage-card data-start/end, Load-out/Sail/Load-in/Jack-down, tide-table | G, N | | Detailed Voyage Schedule | Schedule 테이블 V1~V7 행 날짜, ganttData activities | H | | Gantt Chart (예: Jan 26 - Mar 25, 2026) | projectStart/projectEnd, ganttData start/end, 차트 제목 | C |
tide_to_voyage_overview.py는 항상 실행하여 voyage별 data-start~data-end 구간에 맞는 tide-table을 반영한다.다음 단계가 모두 점검 대상임. 누락 없이 순서대로 확인한다.
| 단계 | 구분 | 작업 | 점검 항목 |
|------|------|------|-----------|
| A | 데이터 | files/agi tr final schedule.json | 일정 시프트 적용 여부, planned_start/finish 일관성, summary.date_range |
| B | 일정 시프트 | files/schedule_shift.py 적용 | JSON·HTML 동기화, pivot 이후만 시프트 |
| C | HTML 소스 | files/AGI TR SCHEDULE_*.html | 최신 날짜 파일 사용, projectStart/projectEnd, ganttData |
| D | 공지란 | Operational Notice 블록 | 날짜가 갱신일(YYYY-MM-DD)과 일치 |
| E | Weather & Marine Risk | Weather Alert 블록 | Last Updated 갱신, 4일치 예보(D~D+3), Mina Zayed·해상 문단 |
| F | KPI Grid | 6개 카드 | KPI 갱신 수행 주체(유일): 본 스킬(3단계)에서 Total Days 재계산 반영, SPMT Set = 1 확인·수정. 2단계(agi-schedule-daily-update)는 KPI를 수정하지 않음. |
| G | Voyage Cards | data-start/end, 표시 텍스트 | TR1~V7 일정과 JSON·ganttData 일치, Load-out/Sail/Load-in/Jack-down 표기 |
| H | ganttData·테이블 | JS activities, Schedule table | start/end YYYY-MM-DD, V1~V7 행 날짜가 JSON과 일치 |
| I | 날씨 파싱 | files/weather/ 최신 날짜 폴더 → files/out/weather_parsed/YYYYMMDD/ | 항상 최신 YYYYMMDD 폴더 파싱 후 JSON 생성 여부 |
| J | WEATHER_DASHBOARD | files/WEATHER_DASHBOARD.py | TARGET_DATE·VOYAGES, 하단 날짜 가로(rotation=0), 레이아웃(height_ratios·bottom) |
| K | 히트맵 PNG | files/out/weather_4day_heatmap.png | 파일 존재, 필요 시 dashboard 복사 |
| L | 이미지 참조 | embed_heatmap_base64.py / replace_img_ref.py | HTML 내 히트맵 img src(파일 또는 Base64) 정상 반영 |
| M | weather-go-nogo 연계 | 스킬 weather-go-nogo | 파싱 JSON(files/out/weather_parsed/...) 존재 시 Go/No-Go 평가 가능 안내; 입력(파고·풍속·한도) 있으면 4단계에서 평가. |
| N | 물때 테이블 | 스킬 water-tide-voyage / tide_to_voyage_overview.py | WATER TIDE.csv 기반 6:00~17:00 상위 3시간대가 각 Voyage Overview table.tide-table에 반영. 항상 실행 (일정 시프트 후 대시보드 일관성 유지). |
<!-- Operational Notice --> 다음 div.weather-alert 블록. <strong ...>YYYY-MM-DD</strong> 또는 동일 형식.1 인지 확인.1 이 아니면 1 로 변경.totalDays 등이 있으면 동일 값으로 맞춤.totalDays(또는 동일 역할 변수)를 위 규칙으로 재계산해 반영.문제 1: 히트맵 하단(Daily Operation Status)의 날짜가 가로(rotation=0) 로 표시되어야 함.
위치: files/WEATHER_DASHBOARD.py 내 ax3.set_xticklabels(..., rotation=..., ha=...) 및 관련 서브플롯 설정.
점검: rotation=0, ha="center" 로 설정되어 있는지 확인.
수정: rotation=0, ha="center" 로 되어 있지 않으면 수정.
문제 2: 날짜를 가로로 하면 아래 공간이 남으므로 히트맵 레이아웃 조정이 필요함.
위치: files/WEATHER_DASHBOARD.py 내 height_ratios, plt.subplots_adjust(left=..., right=..., top=..., bottom=...), 및 gs = fig.add_gridspec(...).
점검: height_ratios(예: [2.0, 1.0, 0.6])로 하단 Daily Operation 구간 비율이 적절한지, bottom 값으로 하단 여백이 과하지 않은지 확인. 가로 날짜 시 여백을 줄이면 히트맵 영역이 더 넓어짐.
수정: 하단 날짜가 가로일 때 여백이 과하면 bottom 값을 줄이거나(예: 0.10 → 0.08), height_ratios의 세 번째 값(0.6)을 조정해 Daily Operation 영역을 줄이고 히트맵 비중을 키움. (레이아웃이 깨지지 않도록 저장 후 PNG 확인 권장.)
files/agi tr final schedule.json 의 TR1 Load-out 등 핵심 일정과, HTML 내 projectStart/projectEnd, ganttData 각 row의 start/end, voyage-card data-start/data-end, Schedule 테이블 V1~V7 행 날짜가 동일한 일정을 가리키는지 확인.files/schedule_shift.py 또는 수동으로 나머지 동기화.agi-schedule-daily-update 절차에 따라 갱신.files/weather/YYYYMMDD/ 에 자료가 있으면 files/out/weather_parsed/YYYYMMDD/weather_for_weather_py.json 생성 여부 확인.files/out/weather_4day_heatmap.png 존재 여부, 필요 시 files/weather_4day_heatmap_dashboard.png 복사 여부 확인.src="weather_4day_heatmap_dashboard.png" 또는 src="data:image/png;base64,..." 로 정상 표시되는지 확인. 필요 시 embed_heatmap_base64.py 또는 replace_img_ref.py 실행.files/WATER TIDE.csv 에서 6:00~17:00 구간만 사용해 voyage별 기간 내 최고 물때 상위 3시간대를 계산하고, 각 Voyage Overview의 table.tide-table tbody에 TIME/HEIGHT 3행으로 반영..voyage-card 내 table.tide-table tbody.files/ 폴더에서 python tide_to_voyage_overview.py 실행. 일정 시프트 후 대시보드(7 Voyages Overview) 일관성 유지를 위해 조건 없이 수행.water-tide-voyage 참조.files/ 내 AGI TR SCHEDULE_*.html 중 파일명 날짜가 가장 최근인 파일 선택.rotation=0, ha="center" 및 height_ratios/subplots_adjust(bottom) 확인·수정 후 필요 시 python WEATHER_DASHBOARD.py 재실행.files/out/weather_4day_heatmap.png 존재, 필요 시 dashboard 복사.embed_heatmap_base64.py 또는 replace_img_ref.py 실행.files/out/weather_parsed/YYYYMMDD/weather_for_weather_py.json 존재 시, 4단계 스킬 weather-go-nogo 로 해상 Go/No-Go 평가 가능함을 안내. (파고·풍속·한도값 입력 시 평가.)python tide_to_voyage_overview.py 실행하여 각 voyage의 tide-table에 6~17시 상위 3시간대 반영.files/ 폴더 밖 파일은 수정하지 않는다./agi-schedule-updater: 모든 요청에 대해 위 파이프라인을 수행한 뒤, 본 스킬로 전체 파이프라인 작업(A~N) 점검·수정 및 4단계(weather-go-nogo) 연계 안내를 한다.점검·수정 결과는 agentskillguide/DASHBOARD_OUTPUT_SCHEMA.md와 동일하게 대시보드에 출력되어야 함.
development
통합 파이프라인 4단계. SEA TRANSIT(해상 운행) 전용 Go/No-Go 의사결정 로직. Wave(ft)·Wind(kt) 입력, 3단 Gate(임계값·Squall/피크파 버퍼·연속 Weather window) 적용.
tools
WATER TIDE.csv 기반 주간(오전 6시~오후 5시) 최고 물때 상위 3시간대를 Voyage Overview의 tide-table에 voyage별로 연동. files/ 전용.
development
통합 파이프라인 1단계. AGI TR 일정(JSON/HTML)에서 pivot date 이후 전체 일정을 delta일만큼 자동 시프트. 모든 작업은 files 폴더 안에서만 수행.
development
통합 파이프라인 3단계. 모든 AGI Schedule 파이프라인 작업 완료 후 전체 점검. 데이터·일정·공지·날씨·KPI·히트맵·이미지·Go/No-Go 안내 등 모든 단계가 체크리스트에 포함되도록 검사 및 수정.