# factory00 — 부품 컴포넌트 사양 (Component Specs)

> 코드리스 디지털 트윈의 부품 속성 정의 SSOT.
> 작성 패턴: PM 정리 → 개발자 질문 → 사용자 결정 → spec 확정 → 에이전트 위임 → 구현.

---

## 활성 spec (확정)

| 파일 | 컴포넌트 | 분류 | 상태 |
|---|---|---|---|
| [2026-05-12-actuator-servo-axis.md](2026-05-12-actuator-servo-axis.md) | 서보 구동 축 (ServoAxisActuator) | 구동부 (Actuator) | 확정 — 에이전트 위임 가능 |
| [2026-05-12-photosensor-direct-reflection.md](2026-05-12-photosensor-direct-reflection.md) | 직접반사형 포토센서 (PhotoSensor) | 입력부 (Sensor) | 확정 — 에이전트 위임 가능 |

---

## 질문노트 (개발자 Q → PM 분석 → 사용자 결정)

`qa-notes/` 디렉토리 — `[QN-NNN] YYYY-MM-DD — {컴포넌트}` 형식.

| 파일 | 대상 spec | 처리 Q 수 |
|---|---|---|
| [질문노트-2026-05-12-QN001.md](qa-notes/질문노트-2026-05-12-QN001.md) | 서보 구동 축 + 포토센서 | 6건 (Q1~Q6) |
| [답변노트-2026-05-12-QN001.md](qa-notes/답변노트-2026-05-12-QN001.md) | 포토센서 — 개발자 정리 | 6건 |

---

## 향후 추가 예정 (개발계획서 §)

| 우선 | 컴포넌트 | 분류 | 작성 상태 |
|---|---|---|---|
| P1 | [인터페이스 에뮬레이팅 기능](2026-05-12-interface-emulation.md) | 시스템 | **spec 확정 v0.1.156** · 구현 v0.1.157 예약 |
| P1 | 입력부 (포토센서 외 추가 센서) | Sensor | 작성 예정 |
| P2 | [회전 구동축 (RotaryActuator)](2026-05-12-actuator-rotary.md) | 구동부 | **spec 확정 v0.1.160** · 구현 v0.1.161~165 예약 |
| P2 | 관통형 포토센서 (Through-Beam) | Sensor | 미래 |
| P2 | 근접 센서 / 초음파 센서 | Sensor | 미래 |

---

## 4대 불변 원칙 (모든 spec 검토 필수)

1. **임포트 전용** — 모델링 X. 기존 임포트 부품에 컴포넌트 바인딩
2. **경량 물리** — Transform 운동학 + 충돌 감지(`OverlapSphere`, `Bounds`). 힘·질량 X
3. **비코딩 UX** — 드롭다운·슬라이더·필드만. 스크립팅 노출 X
4. **이벤트 기반** — `EventBus.Publish` edge trigger. 메서드 직호출 X

---

## 구현 사이클 진입 시 체크리스트

- [ ] spec 4대 원칙 검토표 PASS 확인
- [ ] 4대 원칙 위반 시 ADR 신규 또는 spec 재작성
- [ ] 데이터 모델 직렬화 JSON 키 ↔ C# 필드 1:1 매핑
- [ ] Inspector UI 6에 명시된 모든 위젯 = `RowWithPartRef` / `EditableFloatRow` / `EditableVec3Row` 패턴 재사용
- [ ] ISensor / IActuator 인터페이스 = 신규 컴포넌트 추가 시 즉시 확장 가능
- [ ] EventBus.Publish 호출은 edge trigger (변화 시만)
