# v0.1.273 — Camera.main 헬퍼 + publish marker 3종 hook + 룰 fix (42nd seal post-polish)

- 버전: v0.1.273
- 분류: 48th stable seal (v0.1.366) 일괄 봉인 사이클
- 다운로드: [factory00-windows-x64-v0.1.273.zip](../../downloads/archive/factory00-windows-x64-v0.1.273.zip) (archive 보존)
- 캡처: [qa-screenshots/v0.1.273/](../../qa-screenshots/v0.1.273/)

---

## 42nd seal post-polish — 3건 일괄 처리
42nd stable seal(v0.1.272) 봉인 직후의 작은 정리 사이클입니다. critic deferred 처리, 핸드오프 자동화 완성, 회고 룰 fix 세 가지를 묶어서 진행했습니다.
---

## 1. Camera.main 즉석 조회 헬퍼 추출 (42nd seal 중간 deferred 종료)
42nd seal 봉인 시 critic이 "Camera.main?.GetComponent() 즉석 조회가 두 곳에서 중복되어 있어 헬퍼 추출이 권장된다"고 중간 결함으로 지적했습니다. 이번 사이클에서 헬퍼 메서드를 추가하고 두 호출처를 모두 교체했습니다.`csharp// v0.1.273 — CameraViewController 즉석 조회 헬퍼 (42nd seal 중간 결함 deferred 종료).
Factory00.Game.CameraViewController GetCameraViewController()
{
    var cam = Camera.main;
    return cam != null ? cam.GetComponent() : null;}
`- Bootstrap.cs:3045 (더블클릭 카메라 포커스) — GetCameraViewController() 호출로 교체- Bootstrap.cs:6719 (Collision Check 결과 윈도우 행 클릭) — 동일향후 카메라 조회가 필요한 신규 메서드는 본 헬퍼만 호출하면 됩니다.
---

## 2. publish-build-auto.sh marker hook 3종 추가
handoff.html에는 v0.1.267 사이클에서 5개 marker를 자동 갱신하도록 hook을 구축했지만, HEADER_TITLE_AUTOGEN / FACTORY00_GIT_AUTOGEN / COLLAB_GIT_AUTOGEN 3개 marker는 hook 코드가 빠져 있어 수동 갱신에 의존하고 있었습니다. 이번 사이클에서 자동화 완성.| marker | 자동 갱신 내용 |
|---|---|
| HEADER_TITLE_AUTOGEN | 기획자 전달 — factory00 진척 종합 (최신 vX.Y.Z · YYYY-MM-DD KST) 자동 갱신 || FACTORY00_GIT_AUTOGEN | factory00 자체 repo git log -1 --pretty=format:'%h|%s' 결과 (commit hash + 제목) 자동 표시 || COLLAB_GIT_AUTOGEN | 협업자 repo git log -1 --pretty=format:'%h|%ad|%s' 결과 (hash + 날짜 + 제목) 자동 표시 |
### 구현 패턴
bash에서 git log 결과를 환경변수로 전달 -> python heredoc에서 marker regex로 교체. 결과 저장 시 모든 8개 marker (기존 5 + 신규 3)가 한 번에 처리됩니다.
`bashF00_LOG_RAW=$(cd "$PROJ" && git log -1 --pretty=format:'%h|%s')
export F00_HASH="${F00_LOG_RAW%%|*}"
export F00_SUBJ="${F00_LOG_RAW#*|}"
# (협업자 repo도 동일 패턴)
`이제 매 빌드마다 handoff.html이 완전 자동 갱신됩니다. 어시스턴트가 직접 편집해야 하는 부분은 handoff-pm-action.html의 PM 액션 패널 본문(spot-check 다이어트 등)만 남게 됩니다.---

## 3. 룰 fix — `spec-vs-codebase-pre-check.md` 변수 scope 검증 추가
v0.1.272 r1에서 camCtrl not in scope 컴파일 에러로 빌드 abort가 발생한 회고를 룰에 반영했습니다.
### 추가 항목
**§2 codebase grep으로 실제 구조 검증** 절에 변수 scope 검증 grep 패턴 추가:
`bash# 신규 메서드가 기존 변수(camCtrl 등)를 참조하려 할 때
# 그 변수가 클래스 필드인지 vs 다른 메서드의 로컬 변수인지 grep으로 확인
grep -nE "^s*(public|private|internal|protected)?s*w+s+camCtrl" Assets/Scripts/Game/Factory00Bootstrap.cs
grep -nE "var camCtrls*=" Assets/Scripts/Game/Factory00Bootstrap.cs
`매칭이 var camCtrl = ... (로컬) 만 있고 필드 선언이 없으면 신규 메서드는 즉석 조회 패턴 또는 헬퍼 메서드를 사용해야 합니다.**§3 mismatch 분류 표**에도 행 추가:
| 상황 | 처리 |
|---|---|
| 신규 메서드가 참조하려는 변수가 클래스 필드 아님 (다른 메서드의 로컬 변수) | 즉석 조회 패턴 사용 또는 동일 패턴 호출이 2회+ 시 헬퍼 메서드 추출 |
향후 신규 메서드 추가 시 본 grep 단계를 따르면 v0.1.272 r1 같은 컴파일 abort를 회피할 수 있습니다.
---

## 변경 파일
- Assets/Scripts/Game/Factory00Bootstrap.cs — GetCameraViewController() 헬퍼 신규 + 2곳 교체 (~15라인)- Tools/qa/publish-build-auto.sh — HEADER_TITLE / FACTORY00_GIT / COLLAB_GIT marker hook 3종 추가 (~60라인 python heredoc 확장)- .claude/rules/spec-vs-codebase-pre-check.md — 변수 scope 검증 grep + mismatch 분류 행 (~15라인)- ProjectSettings/ProjectSettings.asset — bundleVersion 0.1.272 -> 0.1.273---

## 검증 절차
1. **헬퍼**: 부품 더블클릭 시 카메라 포커스 / Collision 결과 항목 클릭 시 카메라 포커스 — 둘 다 정상 작동
2. **publish hook**: 이번 v0.1.273 빌드 후 handoff.html의 8개 marker 모두 자동 갱신 확인. h1 제목·factory00 commit hash·협업자 pull 정보가 모두 최신 값으로 표시3. **룰 fix**: 다음 신규 메서드 추가 사이클에서 grep 검증 단계 자연스럽게 적용
---

## 다음 사이클 예정
- **v0.1.274** — QA-065 Undo/Redo 드롭다운 P2 검토 답변 (handshake.md 답변 작성) / 잔존 협업자 spec 정리- **v0.1.275~278** — QA-014 PM 회신 받으면 root cause 확정 / 추가 spec 작업- **43rd stable seal** — v0.1.273~278 5~6 사이클 누적 후 봉인 예정


---

## 봉인 참조

본 사이클은 **48th stable seal (v0.1.366, 2026-05-24)** 일괄 봉인에 포함됨.

- journal: [2026-05-24-v0.1.298-366-48th-stable-seal.md](../../journal/2026-05-24-v0.1.298-366-48th-stable-seal.md)
- alias zip: [factory00-windows-x64-v0.1.366-stable.zip](../../downloads/factory00-windows-x64-v0.1.366-stable.zip) (170 MB)
