star-promptlisted
Install: claude install-skill genusarvicolabathos238/triflux
# tfx-star-prompt — GitHub Star Request Prompt
CLI 도구의 setup 완료 시점에 GitHub 리포 스타를 요청하는 프롬프트를 추가한다.
사용자 경험을 해치지 않으면서, 이미 스타한 사용자에겐 감사를 표하고, 아직 안 한 사용자에겐 부담 없이 한 번 물어본다.
## 동작 흐름
```
gh auth status ─── 실패 → URL만 표시 (비인터랙티브 폴백)
│
✓ 인증됨
│
gh api user/starred/{owner}/{repo} ─── 성공 → "이미 함께하고 계시군요. ⭐"
│
✗ 미스타
│
confirm("⭐ 하나가 큰 차이를 만듭니다.") ─── N → URL 조용히 표시
│
Y
│
gh api -X PUT /user/starred/{owner}/{repo} → "함께해 주셔서 감사합니다. ⭐"
│
실패 → URL 폴백
```
## 구현 패턴
### 인터랙티브 (TUI / readline confirm)
setup 위저드 완료 후 호출. `confirm()` 으로 Y/n 입력 받고 `gh api`로 자동 스타.
```javascript
async function starRequest() {
let ghOk = false;
try {
execFileSync("gh", ["auth", "status"], {
timeout: 5000, encoding: "utf8", stdio: ["pipe", "pipe", "pipe"],
});
ghOk = true;
} catch {}
if (!ghOk) {
// gh 미설치/미인증 — URL만 표시
info(`⭐ 하나가 큰 차이를 만듭니다. https://github.com/{owner}/{repo}`);
return;
}
let alreadyStarred = false;
try {
execFileSync("gh", ["api", "user/starred/{owner}/{repo}"], {
timeout: 5000, encoding: "utf8", stdio: ["pipe", "pipe", "pipe"],
});
alreadyStarred = true;
} catch {}
if (alreadyStarred) {
ok(`이미 함께하고 계시군요. ⭐`);
return;
}
if (await confirm(`⭐ 하나가 큰 차이를 만듭니다.`, true)) {
try {
execFileSync("gh", ["api", "-X", "PUT", "/user/starred/{owner}/{repo}"], {
timeout: 5000, stdio: ["pipe", "pipe", "pipe"],
});
ok(`함께해 주