Background
#39 / PR #48에서 mode-derivation footgun을 --mode/HOSTDOC_MODE(강제) + shadow 경고(감지)로 해결했다. shadow 경고는 bucket이 domain보다 높은 precedence로 들어왔는데도 cloudfront로 파생될 때 stderr로 뜬다(src/lib/config.ts resolveConfig, bucketS.level < domainS.level).
PR #48 최종 whole-branch 리뷰가 남긴 non-blocking Minor 후속이다.
Problem
shadow 감지가 bucket만 본다. 사용자가 bucket은 파일에서 오게 두고 HOSTDOC_REGION(또는 --region)만 파일의 domain보다 높은 precedence로 주면, 그 region도 mode 선택 관점에선 똑같이 가려지지만 경고가 뜨지 않는다.
s3-website의 canonical override는 bucket+region을 함께 주는 것이라 실사용에서 잘 드러나지 않고, 스펙이 감지 범위를 의도적으로 bucket으로 좁혔으므로 현재 동작은 스펙 준수다. 대칭 커버리지를 위한 선택적 개선이지 버그는 아니다.
Scope
resolveConfig의 shadow 조건을 bucketS.level < domainS.level 에 더해 regionS.level < domainS.level 도 트리거하도록 확장 (OR).
- 경고는 한 번만(중복 경고 방지) — bucket·region 둘 다 shadow여도 단일 메시지.
- 테스트:
HOSTDOC_REGION만 높은 precedence + 파일 domain → 경고 1건. bucket·region 동시 shadow → 여전히 1건. 기존 무경고 케이스(pure cloudfront/s3-website/self-hosted) 회귀 없음.
Non-goals
- 강제 mode(
--mode) 동작 변경 — 무관.
domain/distributionId 방향의 shadow 감지 — 의도적 override라 대상 아님(현재도 단방향 < 유지).
References
Background
#39 / PR #48에서 mode-derivation footgun을
--mode/HOSTDOC_MODE(강제) + shadow 경고(감지)로 해결했다. shadow 경고는bucket이domain보다 높은 precedence로 들어왔는데도 cloudfront로 파생될 때 stderr로 뜬다(src/lib/config.tsresolveConfig,bucketS.level < domainS.level).PR #48 최종 whole-branch 리뷰가 남긴 non-blocking Minor 후속이다.
Problem
shadow 감지가
bucket만 본다. 사용자가bucket은 파일에서 오게 두고HOSTDOC_REGION(또는--region)만 파일의domain보다 높은 precedence로 주면, 그region도 mode 선택 관점에선 똑같이 가려지지만 경고가 뜨지 않는다.s3-website의 canonical override는
bucket+region을 함께 주는 것이라 실사용에서 잘 드러나지 않고, 스펙이 감지 범위를 의도적으로bucket으로 좁혔으므로 현재 동작은 스펙 준수다. 대칭 커버리지를 위한 선택적 개선이지 버그는 아니다.Scope
resolveConfig의 shadow 조건을bucketS.level < domainS.level에 더해regionS.level < domainS.level도 트리거하도록 확장 (OR).HOSTDOC_REGION만 높은 precedence + 파일 domain → 경고 1건. bucket·region 동시 shadow → 여전히 1건. 기존 무경고 케이스(pure cloudfront/s3-website/self-hosted) 회귀 없음.Non-goals
--mode) 동작 변경 — 무관.domain/distributionId방향의 shadow 감지 — 의도적 override라 대상 아님(현재도 단방향<유지).References
src/lib/config.ts(resolveConfig,pick, shadow 경고 분기)docs/superpowers/specs/2026-07-06-explicit-mode-control-design.md