---
task_id: task-1924
type: context
scope: task
created: 2026-04-17
updated: 2026-04-17
status: in-progress
---

# 맥락 노트: task-1924

**task**: task-1924

---

## 결정 근거

### 3 Step Why 자문

**1st Why: "왜 이 설계가 필요한가?"**
- QC 파이프라인에 3가지 구조적 결함 존재: (1) team_short placeholder 미전달 → qc_verify.py 경로 오류, (2) 수동 .done 생성 하위호환 경로 → --gate 우회 가능, (3) finish-task.sh가 QC 실행 여부 미검증 → QC 미실행 상태에서 .done 생성 허용
- 최근 10건 중 6건 QC 미실행/부분 실행 — 근본 원인 수정 필요

**2nd Why: "왜 이 접근이 최선인가?"**
- 기존 코드의 최소 수정으로 3가지 결함을 각각 독립적으로 해결
- 하위호환 경로 제거로 수동 .done 생성을 원천 차단
- .qc-result 파일을 증적(audit trail)으로 활용하여 QC 실행 여부를 물리적으로 검증

**3rd Why: "왜 다른 대안보다 나은가?"**
- 대안 1: 새 QC 프레임워크 구축 → 영향 범위 크고 회귀 위험 높음, 시간 소요 과다
- 대안 2: finish-task.sh에서 qc_verify.py 재실행 → 이중 실행 비효율, 상태 관리 복잡
- 선택: 기존 코드 기반 최소 수정이 가장 안전하면서도 효과적

### placeholder_lines 전수 조사 결과

| 행 | 함수 | 팀 | team_short 필요 여부 |
|---|---|---|---|
| 362 | _build_marketing_prompt | marketing | 추가 (team_short = team_id) |
| 400 | _build_consulting_prompt | consulting | 추가 (team_short = team_id) |
| 434 | _build_publishing_prompt | publishing | 추가 (team_short = team_id) |
| 468 | _build_design_prompt | design | 추가 (team_short = team_id) |
| 506 | _build_content_prompt | content | 추가 (team_short = team_id) |
| 775 | _build_direct_prompt | dev1/dev2/dev3 | 추가 (team_id.replace("-team", "")) |
| 836 | _build_glm_prompt | dev8(glm) | 추가 (team_id.replace("-team", "")) |
| 897 | _build_mcp_prompt | dev8(mcp) | 추가 (team_id.replace("-team", "")) |

## 참조 자료

- task 파일: `/home/jay/workspace/memory/tasks/task-1924.md`
- team_prompts.py: `/home/jay/workspace/prompts/team_prompts.py`
- DIRECT-WORKFLOW.md: `/home/jay/workspace/prompts/DIRECT-WORKFLOW.md`
- qc_verify.py (dev2): `/home/jay/workspace/teams/dev2/qc/qc_verify.py`
- finish-task.sh: `/home/jay/workspace/scripts/finish-task.sh`

## 주의사항

- 논리적 팀(marketing, consulting 등)은 team_id에 "-team" 접미사가 없으므로 team_short = team_id 그대로
- dev1의 qc_verify.py는 이 task 범위 외 (dev1팀 소관)
- finish-task.sh의 기존 .done 원자적 생성 로직(set -C)은 유지하되, QC 검증 전 실행되도록 순서 변경
