← ClaudeAtlas

fpm-cdflisted

pm tmux 세션의 window/pane을 생성·관리함. @N 윈도우 인덱스, :NAME 윈도우 이름, projects/ 번호로 pane 구성. 완료 후 WIN_NAME 출력.
Finfra/fpm · ★ 0 · DevOps & Infrastructure · score 57
Install: claude install-skill Finfra/fpm
# CDF Skill 인자: $ARGUMENTS ## cdft 우선 호출 규칙 `~/.zsh_functions`에 `cdft()` 함수가 존재함. **query 모드를 제외한 모든 모드**(setup, send, list, kill, capture)는 `cdft`를 bash에서 직접 실행하여 처리할 것. ```bash # query 모드 판별 if echo "$ARGUMENTS" | /usr/bin/grep -qE '(^|[[:space:]]): .'; then # query 모드 → 아래 스킬 로직 실행 : else # cdft 직접 실행 (빠르고 안정적) cdft $ARGUMENTS # 여기서 종료 — 아래 로직 실행 불필요 fi ``` query 모드가 아니면 cdft 실행 후 종료. **아래 절차는 query 모드에서만 실행함.** --- 아래 절차를 **순서대로 bash 명령으로 직접 실행**할 것. 설명만 하지 말고 실행해야 함. ## Step 1: ARGUMENTS 파싱 **입력:** `$ARGUMENTS` ### 특수 키워드 즉시 처리 | 조건 | 처리 | | ------------------------- | ------------------------------------ | | 비어있음 또는 `list` | list 모드 실행 후 종료 | | `kill` [WIN_NAME] | kill 모드 실행 후 종료 | | `kill` N N ... | 윈도우 인덱스 N들을 삭제 | | `capture` [N] ([:NAME]) | capture 모드: 각 pane 상태+출력 수집 | ### 파싱 (순서대로) **1. `@N` 윈도우 번호 추출** ```bash TMUX=/opt/homebrew/bin/tmux if echo "$ARGUMENTS" | /usr/bin/grep -qE '@[0-9]+'; then WIN_NUM=$(echo "$ARGUMENTS" | /usr/bin/grep -oE '@[0-9]+' | /usr/bin/tr -d '@') ARGS_W=$(echo "$ARGUMENTS" | /usr/bin/sed 's/@[0-9]*//g' | /usr/bin/sed 's/ */ /g;s/^ //;s/ $//') TARGET_WIN=$($TMUX display-message -t "pm:$WIN_NUM" -p '#W' 2>/dev/null) [ -z "$TARGET_WIN" ] && TARGET_WIN="win-$WIN_NUM" && WIN_CREATE_IDX="$WIN_NUM" else WIN_NUM="" ARGS_W="$ARGUMENTS" TARGET_WIN="" fi ``` **2. `:NAME` 윈도우 이름 추출** ```bash