You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Go이면 별도 implementation issue를 만들고 이 discovery issue에 연결한다.
검증
Evidence: 사용자 interview, beta cohort, issue 요청, 대안 제품 사례를 출처와 함께 정리
Decision: go/no-go와 근거, production 진입 조건을 기록
성공 지표
Primary impact: impact: reliability
Milestone exit condition에 미친 결과를 완료 comment로 기록
상세 실행 명세
현재 제품 경계와 evidence gap
account/auth/routing/API accounting 타입은 Claude/Codex(OpenAI API) 두 축에 고정되어 Gemini, generic OpenAI-compatible, Qwen, provider incident overlay를 수용하는 contract/cost가 검증되지 않았다.
후보별 실제 사용자 수요가 합쳐져 있고, demand gate와 foundation readiness가 독립 증거로 관리되지 않는다.
retention, app/proxy rollback, compatibility contract, account lifecycle/coordinator foundation이 모두 완료됐는지 기계적으로 확인하는 gate record가 없다.
코드 근거
Sources/CLIProxyManagerCore/Auth/AuthProfile.swift:3 — OAuth profile type은 Claude/Codex 두 case다.
Sources/CLIProxyManagerCore/APIUsage/APIUsageAccounting.swift:3 — API accounting provider도 Claude/OpenAI 두 case다.
Sources/CLIProxyManagerCore/Config/AppConfig.swift:165 — account config schema가 AuthProfileType과 provider-specific routing에 결합돼 있다.
Sources/CLIProxyManagerApp/Models/DashboardAccountSnapshot.swift:66 — API key profile 판별이 Claude/OpenAI 두 fixed ID에 의존한다.
Sources/CLIProxyManagerCore/Proxy/ProxyModelClient.swift:37 — model discovery가 Claude prefix와 Codex/OpenAI model family 규칙으로 분기된다.
Sources/CLIProxyManagerCore/APIUsage/APIPriceCatalog.swift:22 — price entry도 fixed APIUsageProvider를 사용한다.
Sources/CLIProxyManagerCore/Proxy/CLIProxyAPIBinaryManifest.swift:8 — proxy artifact version/source/sha contract는 compatibility evidence 기반으로 재사용 가능하다.
Sources/CLIProxyManagerCore/Updates/AppUpdateModels.swift:47 — staged app update는 version/build/source/hash를 기록하지만 rollback success history gate는 별도 foundation이 필요하다.
조사 범위
후보를 네 개의 독립 track으로 조사한다: Gemini, generic OpenAI-compatible profile, Qwen, provider incident status overlay. 한 후보의 수요를 다른 후보에 합산하지 않는다.
Demand gate와 Foundation gates를 별도 표/boolean으로 관리한다. Go(candidate) = Demand(candidate) AND Retention AND AppRollback AND ProxyRollback AND CompatibilityContract AND AccountLifecycle/Coordinator이며 어느 gate도 점수로 상쇄하지 않는다.
Demand는 후보별로 active beta 20% 이상 명시 요청 또는 검증 interview 10건 이상에서 동일 JTBD 확인 중 하나를 충족해야 한다. “다른 provider도 있으면 좋다”는 후보-specific demand로 계산하지 않는다.
technical spike는 non-production adapter/contract test만 수행한다. Gemini/Qwen/generic은 dummy local server와 public schema fixture로 auth/model/error/streaming compatibility gap을 측정하고 real key/network production path를 만들지 않는다.
incident overlay spike는 status source 신뢰성, polling/privacy, false alarm, offline behavior, provider별 support cost를 static fixture로 평가한다.
후보별 security/privacy/maintenance/support/price-catalog/update coupling 비용과 independent Go/No-go를 기록한다. foundation 미충족이면 demand가 높아도 decision은 “No-go now / re-evaluate”다.
Discovery Acceptance criteria
네 후보별 demand evidence/source/sample이 분리되고 20% beta 또는 10 interview gate 충족 여부가 각각 계산된다.
사용자 문제와 기대 결과
후보:
진입 조건 중 하나 이상의 사용자 수요와 모든 foundation 조건을 충족해야 한다.
수요 조건:
Foundation 조건:
Acceptance criteria
검증
성공 지표
impact: reliability상세 실행 명세
현재 제품 경계와 evidence gap
코드 근거
Sources/CLIProxyManagerCore/Auth/AuthProfile.swift:3— OAuth profile type은 Claude/Codex 두 case다.Sources/CLIProxyManagerCore/APIUsage/APIUsageAccounting.swift:3— API accounting provider도 Claude/OpenAI 두 case다.Sources/CLIProxyManagerCore/Config/AppConfig.swift:165— account config schema가AuthProfileType과 provider-specific routing에 결합돼 있다.Sources/CLIProxyManagerApp/Models/DashboardAccountSnapshot.swift:66— API key profile 판별이 Claude/OpenAI 두 fixed ID에 의존한다.Sources/CLIProxyManagerCore/Proxy/ProxyModelClient.swift:37— model discovery가 Claude prefix와 Codex/OpenAI model family 규칙으로 분기된다.Sources/CLIProxyManagerCore/APIUsage/APIPriceCatalog.swift:22— price entry도 fixedAPIUsageProvider를 사용한다.Sources/CLIProxyManagerCore/Proxy/CLIProxyAPIBinaryManifest.swift:8— proxy artifact version/source/sha contract는 compatibility evidence 기반으로 재사용 가능하다.Sources/CLIProxyManagerCore/Updates/AppUpdateModels.swift:47— staged app update는 version/build/source/hash를 기록하지만 rollback success history gate는 별도 foundation이 필요하다.조사 범위
Go(candidate) = Demand(candidate) AND Retention AND AppRollback AND ProxyRollback AND CompatibilityContract AND AccountLifecycle/Coordinator이며 어느 gate도 점수로 상쇄하지 않는다.Discovery Acceptance criteria
조사 위험
명시적 비목표
보안·개인정보·접근성
user@example.com만 사용하고 real provider credential/response를 저장하지 않는다.Evidence plan
완료 지표
불확실성
연관 이슈
Roadmap
VALIDATIONdocs/superpowers/specs/2026-07-27-product-quality-roadmap-design.md