star-promptlisted
Install: claude install-skill tellang/triflux
# tfx-star-prompt — GitHub Star Request Prompt
CLI 도구의 setup/postinstall 완료 시점에 GitHub 리포 스타 요청�� 추가한다.
기본 모드는 aggressive(모달 차단형)이며, `--soft`를 전달하면 기존 부드러운 confirm 모드로 폴백한다.
CI/비인터랙티브 환경에서는 자동으로 soft 모드로 강등한다.
## 동작 흐름
```
detectInteractive() ─── false → soft 모드 강제
│
✓ true
│
gh --version ─── 실패 → URL만 표시
│
✓ 설치됨
│
gh auth status ─── 실패 → URL만 표시
│
✓ 인증됨
│
gh api user/starred/{owner}/{repo}
├─ 성공 → "이미 함께하고 계시군요. ⭐" + markPrompted()
├─ 404 → 미스타로 진행
└─ 그 외 에러 → 프롬프트 없이 URL만 표시 (마커 남기지 않음)
│
✗ 미스타
│
이미 프롬프트 본 유저(마커 존재)면 즉시 스킵
│
aggressive 기본: AskUserQuestion([예, 누를게요] / [아니오]) 블로킹 선택
soft(--soft): confirm("⭐ 하나가 큰 차이를 만듭니다.")
│
├─ 아니오 → aggressive: 안내 + URL / soft: URL만 + markPrompted()
└─ 예
│
Y
│
gh api -X PUT /user/starred/{owner}/{repo}
├─ 성공 → aggressive: "감사합니다! 여러분의 ⭐가 프로젝트를 성장시킵니다."
│ soft: "함께해 주셔서 감사합니다. ⭐"
└─ 실패 → URL 폴백
│
모든 프롬프트 완료 경로는 markPrompted() 호출
```
## 구현 패턴
### 유틸리티 계약
- `ok(message)`: 성공 메시지 출력(초록/강조 톤)
- `info(message)`: 일반 안내 메시지 출력
- `warn(message)`: 경고/실패 폴백 메시지 출력
- `confirm(message, defaultValue)`: soft 모드용 Y/n 확인
- `askUserQuestion({ question, options })`: aggressive 모달 선택 UI
- 옵션은 정확히 `[예, 누를게요]`, `[아니오]`
- 선택 전까지 흐름을 블로킹한다
### 전체 `starRequest` 교체 패턴
아래 패턴으로 기존 `starRequest` 함수를 전면 교체한다.
```javascript
import fs from "node:fs";
import os from "node