Files
Pier_v1/지침적용.bat
T
ahnyongjooandClaude Sonnet 5.5 964a841de1 chore(rebar): Pier_T_rebar 작업 폴더 초기 구성 및 외부 의존 파일 통합
- Code\rebar_pipeline, review_pipeline, pier-program을 정션에서 실제 폴더로 전환
- Code\rhino_mcp 및 CLAUDE_rhino배경.md 추가, .mcp.json은 PYTHONPATH로 새 위치 사용
- pier-program 내부 .git 제거(이력은 backup\pier-program_20261028.bundle에 보관)
- worktree 가이드 반영(CLAUDE.local.md, HANDOFF.md)
- D:\Rhino-MCP 경로 참조를 새 위치로 치환

Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
2026-10-28 11:20:18 +09:00

158 lines
5.5 KiB
Batchfile

@echo off
setlocal
rem 이 파일은 CP949 로 저장되어 있다. 콘솔이 UTF-8(65001)이면 한글이 깨지므로 949로 고정한다.
for /f "tokens=2 delims=:" %%C in ('chcp') do set "OLDCP=%%C"
set "OLDCP=%OLDCP: =%"
chcp 949 >nul 2>&1
title 전역 지침 적용 v0.3.01
set "SRC=%~dp0"
if "%SRC:~-1%"=="\" set "SRC=%SRC:~0,-1%"
set "DST=%~1"
if "%DST%"=="" set /p "DST=적용할 프로젝트 폴더 경로를 입력하세요: "
if "%DST%"=="" goto :NODST
if not exist "%DST%\" goto :NODST
set "DRY="
set "AUTO="
if /i "%~2"=="/L" set "DRY=/L"
if /i "%~3"=="/L" set "DRY=/L"
if /i "%~2"=="/Y" set "AUTO=1"
if /i "%~3"=="/Y" set "AUTO=1"
if defined AUTO goto :RUN
echo.
echo ====================================================
echo 전역 지침 적용 v0.3.01
echo ====================================================
echo 원본 : %SRC%
echo 대상 : %DST%
if defined DRY echo 모드 : 미리보기 ^(실제로 쓰지 않음^)
echo.
echo [A] 지침 / 어댑터 / 스킬 / HMCMkit 자산 =^> 무조건 덮어씀
echo [B] OPEN_미해결목록, state.json 등 =^> 이미 있으면 보존
echo [C] 대상 폴더의 기존 산출물 =^> 건드리지 않음 ^(삭제 없음^)
echo 적용 전 context-migration, prompt 를 backup 에 보관합니다.
echo.
set /p "OK=진행할까요? (Y/N) "
if /i not "%OK%"=="Y" goto :ABORT
echo.
:RUN
rem ---------- 폴더 골격 먼저 ----------
for %%D in ("DOC" "Code" "Code\patch" "Code\verify" "RAG" "prompt" "context-migration" "temp" "backup") do call :MK "%%~D"
rem DOC 유형축 골격(01_기획~99_기타)은 자체 규약을 선언한 프로젝트에서는 만들지 않는다. ([F10])
rem 선언 방법 : 대상 프로젝트에 DOC\CONVENTION.md 를 두고 무엇을 대체하는지 적는다.
if exist "%DST%\DOC\CONVENTION.md" (
echo [건너뜀] DOC 유형축 골격 : 자체 규약 선언 확인 ^(DOC\CONVENTION.md^)
) else (
for %%D in ("DOC\01_기획" "DOC\02_분석" "DOC\03_설계" "DOC\04_실행" "DOC\05_검증" "DOC\06_보고서" "DOC\99_기타") do call :MK "%%~D"
)
rem ---------- 덮어쓰기 전 백업 ([F13]) ----------
rem 백업 대상은 프로젝트 고유 자산인 context-migration, prompt 두 폴더뿐이다.
rem 지침류(.claude, .agents, README)는 정본에서 언제든 재취득 가능하므로 백업하지 않는다.
if defined DRY goto :SKIPBK
set "TODAY="
for /f "usebackq delims=" %%i in (`powershell -nop -c "Get-Date -Format yyyy-MM-dd" 2^>nul`) do set "TODAY=%%i"
if not defined TODAY set "TODAY=%DATE:~0,10%"
set "BK=%DST%\backup\%TODAY%_지침적용전"
set "BKDONE="
for %%D in ("context-migration" "prompt") do call :BKUP "%%~D"
if defined BKDONE echo [백업] backup\%TODAY%_지침적용전 ^(context-migration, prompt^)
:SKIPBK
rem ---------- [A] 무조건 덮어쓰기 ----------
call :RC ".claude"
call :RC ".agents"
rem v0.3.00: 구 어댑터 규칙은 tea-* 스킬로 대체되었으므로 대상에서 제거한다 (robocopy 는 지우지 않는다)
if not defined DRY for %%F in ("coding-agent.md" "orchestration.md") do if exist "%DST%\.agents\rules\%%~F" del /Q "%DST%\.agents\rules\%%~F"
call :RCH
rem 주의: 패키지 root README.md 는 *패키지 자신의 설명서*이므로 대상 프로젝트로 복사하지 않는다.
rem (v0.2.03 까지 복사되어 9개 프로젝트의 root README 를 덮어쓴 사고가 있었다)
call :CP1 "DOC\README.md"
call :CP1 "Code\README.md"
call :CP1 "RAG\README.md"
rem 공개판: prompt\README.md 에는 부서별 담당자 표가 있으므로 이미 있으면 보존한다
call :CPN "prompt\README.md"
call :CP1 "context-migration\README.md"
rem ---------- [B] 없을 때만 ----------
call :CPN "context-migration\OPEN_미해결목록.md"
call :CPN "context-migration\디자인지침_경로.md"
call :CPN ".hmcmkit\state.json"
call :CPN ".hmcmkit\blueprint.md"
call :CPN ".hmcmkit\config.json"
if defined AUTO goto :END
echo.
echo ----------------------------------------------------
echo 완료. 아래 3가지를 확인하세요.
echo 1^) %DST%\.claude\taskexecutionagent.md 상단 버전이 v0.3.01 인지
echo 2^) prompt\README.md 담당자 매핑 표에 본인이 있는지
echo 3^) 기존 산출물^(DOC, prompt^)이 그대로 남아 있는지
echo ----------------------------------------------------
goto :END
rem ==================== 서브루틴 ====================
:MK
if defined DRY goto :eof
if not exist "%DST%\%~1\" mkdir "%DST%\%~1" >nul 2>&1
goto :eof
:BKUP
if not exist "%DST%\%~1\" goto :eof
robocopy "%DST%\%~1" "%BK%\%~1" /E /IS /IT /R:1 /W:1 /NFL /NDL /NJH /NJS /NP >nul
set "BKDONE=1"
goto :eof
:RC
if not exist "%SRC%\%~1\" goto :eof
robocopy "%SRC%\%~1" "%DST%\%~1" /E /IS /IT %DRY% /R:2 /W:2 /NFL /NDL /NJH /NJS /NP >nul
if errorlevel 8 (echo [실패] %~1) else (echo [덮어씀] %~1)
goto :eof
:RCH
if not exist "%SRC%\.hmcmkit\" goto :eof
robocopy "%SRC%\.hmcmkit" "%DST%\.hmcmkit" /E /IS /IT /XF state.json blueprint.md config.json %DRY% /R:2 /W:2 /NFL /NDL /NJH /NJS /NP >nul
if errorlevel 8 (echo [실패] .hmcmkit) else (echo [덮어씀] .hmcmkit ^(state/blueprint/config 제외^))
goto :eof
:CP1
if not exist "%SRC%\%~1" goto :eof
if defined DRY echo [덮어씀-예정] %~1
if defined DRY goto :eof
if exist "%DST%\%~1" attrib -R "%DST%\%~1" >nul 2>&1
copy /Y "%SRC%\%~1" "%DST%\%~1" >nul
if errorlevel 1 (echo [실패] %~1) else (echo [덮어씀] %~1)
goto :eof
:CPN
if not exist "%SRC%\%~1" goto :eof
if exist "%DST%\%~1" echo [보존] %~1
if exist "%DST%\%~1" goto :eof
if defined DRY echo [생성-예정] %~1
if defined DRY goto :eof
copy /Y "%SRC%\%~1" "%DST%\%~1" >nul
echo [생성] %~1
goto :eof
:NODST
echo.
echo [오류] 대상 폴더를 찾을 수 없습니다.
echo 사용법 : 지침적용.bat "D:\새프로젝트"
echo 미리보기 : 지침적용.bat "D:\새프로젝트" /L
goto :END
:ABORT
echo 취소했습니다.
:END
echo.
if not defined AUTO pause
if defined OLDCP chcp %OLDCP% >nul 2>&1
endlocal