s-skill-teardown
Compare original and translation side by side
🇺🇸
Original
English🇨🇳
Translation
Chineses-skills 정리 마법사
s-skills 清理向导
/s-skill-setup是的反向操作。 可逐一询问并清理已配置的MCP服务器、令牌及登录状态。
/s-skill-setup원칙
原则
- 전부 한 번에 지우지 않는다. 항목마다 "이거 지울까요?" 묻고 Yes 받은 것만 처리.
- 파괴적 작업 전 반드시 재확인. 특히 토큰/설정 파일은 백업을 먼저 만든다.
- 외부 시스템의 삭제는 안내만. Slack 앱 자체 삭제처럼 브라우저에서 해야 하는 건 링크와 클릭 순서를 알려준다.
- 한국어 존댓말. "~할까요?/~했습니다" 체.
- "스킵" 항상 가능. 질문마다 건너뛸 수 있어야 한다.
- 不一次性全部删除。对每个项目询问「要删除这个吗?」,仅处理用户确认Yes的内容。
- 破坏性操作前必须再次确认。尤其是令牌/配置文件,需先创建备份。
- 外部系统的删除仅提供指引。像Slack应用本身删除这类需要在浏览器操作的步骤,需提供链接和点击流程说明。
- 使用韩国语敬语。采用「~할까요?/~했습니다」句式。
- 始终提供「跳过」选项。每个问题都允许跳过。
실행 흐름
执行流程
0단계. 시작 멘트
0阶段. 开场语
안녕하세요. s-skills 정리를 도와드릴게요. 🧹
설정해둔 것들을 하나씩 물어보면서 지울지 선택하게 해드립니다.
실수로 다 지워버리지 않도록 항목마다 확인 받을게요.안녕하세요. s-skills 정리를 도와드릴게요. 🧹
설정해둔 것들을 하나씩 물어보면서 지울지 선택하게 해드립니다.
실수로 다 지워버리지 않도록 항목마다 확인 받을게요.1단계. 저장 위치 확인
1阶段. 存储位置确认
setup과 동일하게 결정:
MCP_PATH- 옵션 A: 전역 —
~/.claude/.mcp.json - 옵션 B: 이 프로젝트만 —
./.mcp.json - 옵션 C: 둘 다 검사 — 두 경로에서 발견되는 모든 설정을 각각 확인
AskUserQuestion与setup相同,确定:
MCP_PATH- 选项A:全局 —
~/.claude/.mcp.json - 选项B:仅当前项目 —
./.mcp.json - 选项C:同时检查两者 — 分别确认两个路径下的所有配置
通过让用户选择。
AskUserQuestion2단계. 현재 상태 탐지
2阶段. 当前状态检测
지우기 전에 뭐가 있는지 먼저 보여준다:
bash
undefined删除前先展示现有配置:
bash
undefined각 MCP_PATH에 대해:
针对每个MCP_PATH:
[ -f "$MCP_PATH" ] && jq '.mcpServers | keys' "$MCP_PATH" 2>/dev/null
[ -f "$MCP_PATH" ] && jq '.mcpServers | keys' "$MCP_PATH" 2>/dev/null
Shiftee 로그인 상태
Shiftee登录状态
[ -f "$HOME/.config/shiftee-cli/config.json" ] && echo "shiftee logged in"
[ -f "$HOME/.config/shiftee-cli/config.json" ] && echo "shiftee logged in"
GitHub CLI 로그인 상태
GitHub CLI登录状态
gh auth status 2>&1 | head -3
gh auth status 2>&1 | head -3
설치된 s-skill 파일들 (전역/프로젝트 양쪽)
已安装的s-skill文件(全局/项目双端)
ls -1 "$HOME/.claude/skills" 2>/dev/null | grep -E '^s-skill-'
ls -1 ".claude/skills" 2>/dev/null | grep -E '^s-skill-'
그리고 ToolSearch로 세션에 로드된 MCP 도구들도 확인:
ToolSearch "+slack" → Slack MCP
ToolSearch "+linear" → Linear MCP
ToolSearch "+notion" → Notion MCP
결과를 한 번에 보여준다:
🔍 현재 설정된 항목
Slack MCP : ✅ (xoxp-토큰 저장됨)
Linear MCP : ✅
Notion MCP : ✅
Shiftee CLI : ✅ (로그인됨)
GitHub CLI : ✅ (jongbeomlee로 로그인)
설치된 스킬 : s-skill-setup, s-skill-shiftee, s-skill-slack, ... (전역)
undefinedls -1 "$HOME/.claude/skills" 2>/dev/null | grep -E '^s-skill-'
ls -1 ".claude/skills" 2>/dev/null | grep -E '^s-skill-'
同时通过ToolSearch检查会话中加载的MCP工具:
ToolSearch "+slack" → Slack MCP
ToolSearch "+linear" → Linear MCP
ToolSearch "+notion" → Notion MCP
将结果统一展示:
🔍 当前已配置的项目
Slack MCP : ✅ (已存储xoxp-令牌)
Linear MCP : ✅
Notion MCP : ✅
Shiftee CLI : ✅ (已登录)
GitHub CLI : ✅ (以jongbeomlee身份登录)
已安装技能 : s-skill-setup, s-skill-shiftee, s-skill-slack, ... (全局)
undefined3단계. 인터뷰 + 제거 루프
3阶段. 询问 + 删除循环
순서: Shiftee → Slack → Linear → Notion → GitHub → 스킬 파일
(가장 로컬/단순 → 외부 연관 → 마지막에 스킬 파일 자체 철거)
없는 항목은 자동 스킵. 있는 항목만 "지울까요?" 질문.
顺序:Shiftee → Slack → Linear → Notion → GitHub → 技能文件
(从最本地/简单的操作到关联外部系统的操作,最后移除技能文件本身)
不存在的项目自动跳过,仅对存在的项目询问「要删除吗?」。
제거 분기
删除分支
Shiftee CLI 로그아웃
Shiftee CLI登出
감지: 존재 여부.
~/.config/shiftee-cli/config.jsonQ. : "Shiftee 로그인 정보(토큰)를 지울까요?"
AskUserQuestion- 옵션: 네, 지우기 / 아니요, 유지 / 뭐 하는 거예요?
"뭐 하는 거예요?" 면 설명:
에 저장된 account_token, employee_token을 삭제합니다. 다시 쓰려면~/.config/shiftee-cli/config.json을 실행해서 브라우저 쿠키 토큰(shiftee.io의shiftee login/shiftee_account_auth_token)을 다시 붙여넣으면 됩니다. Shiftee 계정 자체가 삭제되는 건 아닙니다.shiftee_employee_auth_token
"네" 면:
bash
cp ~/.config/shiftee-cli/config.json ~/.config/shiftee-cli/config.json.bak
rm ~/.config/shiftee-cli/config.json检测方式:检查是否存在。
~/.config/shiftee-cli/config.json问题::「要删除Shiftee登录信息(令牌)吗?」
AskUserQuestion- 选项:是,删除 / 否,保留 / 这是做什么的?
若用户选择「这是做什么的?」,则说明:
删除中存储的account_token、employee_token。 如需再次使用,只需执行~/.config/shiftee-cli/config.json并重新粘贴浏览器Cookie令牌(shiftee.io的shiftee login/shiftee_account_auth_token)即可。 不会删除Shiftee账号本身。shiftee_employee_auth_token
若用户选择「是」,则执行:
bash
cp ~/.config/shiftee-cli/config.json ~/.config/shiftee-cli/config.json.bak
rm ~/.config/shiftee-cli/config.json자동 다운로드된 캐시 바이너리도 정리
清理自动下载的缓存二进制文件
rm -rf ~/.cache/s-skill-shiftee
검증: `[ ! -f ~/.config/shiftee-cli/config.json ] && echo "삭제 완료"`
결과:✅ Shiftee 로그아웃 완료 + 캐시 정리. 백업은 ~/.config/shiftee-cli/config.json.bak 에 남겨뒀어요.
---rm -rf ~/.cache/s-skill-shiftee
验证:`[ ! -f ~/.config/shiftee-cli/config.json ] && echo "삭제 완료"`
结果提示:✅ Shiftee登出完成 + 缓存清理。备份文件已保存至~/.config/shiftee-cli/config.json.bak。
---Slack MCP 제거 (2단계)
Slack MCP删除(2阶段)
Slack은 MCP 설정 제거 + Slack 앱 자체 삭제 두 단계로 나눠 물어본다.
Slack分为移除MCP配置 + 删除Slack应用本身两个阶段询问。
3-1. MCP 설정에서 제거
3-1. 从MCP配置中移除
감지: 의 존재 여부.
$MCP_PATH.mcpServers.slackQ. : "Slack MCP 설정을 에서 제거할까요?"
AskUserQuestion.mcp.json- 옵션: 네, 제거 / 아니요, 유지
"네" 면:
- 백업:
cp "$MCP_PATH" "$MCP_PATH.bak" - 로 slack 키 제거:
jqbashjq 'del(.mcpServers.slack)' "$MCP_PATH" > "$MCP_PATH.tmp" && mv "$MCP_PATH.tmp" "$MCP_PATH" - 안내:
✅ .mcp.json에서 slack 항목 제거했습니다. Claude Code를 재시작해주세요. (백업: $MCP_PATH.bak)
检测方式:检查中是否存在。
$MCP_PATH.mcpServers.slack问题::「要从中移除Slack MCP配置吗?」
AskUserQuestion.mcp.json- 选项:是,移除 / 否,保留
若用户选择「是」,则:
- 备份:
cp "$MCP_PATH" "$MCP_PATH.bak" - 使用移除slack键:
jqbashjq 'del(.mcpServers.slack)' "$MCP_PATH" > "$MCP_PATH.tmp" && mv "$MCP_PATH.tmp" "$MCP_PATH" - 提示:
✅ 已从.mcp.json中移除slack项目。请重启Claude Code。 (备份文件:$MCP_PATH.bak)
3-2. Slack 앱/토큰 폐기
3-2. 作废Slack应用/令牌
Q. : "Slack 워크스페이스에서 앱도 삭제할까요? (토큰이 완전히 무효화됩니다)"
AskUserQuestions-skills-mcp- 옵션: 네, 브라우저에서 삭제 / 토큰만 revoke / 아니요, 앱 유지
"네, 브라우저에서 삭제" 면 수동 안내:
Slack 앱 자체를 완전히 삭제하려면:
👉 https://api.slack.com/apps 열기
👉 목록에서 이전에 만든 앱(예: `s-skills-mcp`) 클릭
👉 왼쪽 메뉴 맨 아래 'Basic Information' 페이지 최하단
👉 'Delete App' 버튼 클릭 → 확인
이렇게 하면 발급된 xoxp- 토큰도 영구히 무효화됩니다.
완료하셨나요?→ (네/아직).
AskUserQuestion"토큰만 revoke" 면:
앱은 남기고 토큰만 폐기하려면:
👉 https://api.slack.com/apps 에서 해당 앱 → 'OAuth & Permissions'
👉 'User OAuth Token' 옆 'Revoke Token' 클릭
완료하셨나요?问题::「也要从Slack工作区删除应用吗?(令牌将完全失效)」
AskUserQuestions-skills-mcp- 选项:是,在浏览器中删除 / 仅作废令牌 / 否,保留应用
若用户选择「是,在浏览器中删除」,则提供手动指引:
如需完全删除Slack应用,请按以下步骤操作:
👉 打开https://api.slack.com/apps
👉 在列表中点击之前创建的应用(例如:`s-skills-mcp`)
👉 左侧菜单最下方的'Basic Information'页面底部
👉 点击'Delete App'按钮 → 确认
此操作会使已颁发的xoxp-令牌永久失效。
完成了吗?→ 通过确认(是/尚未)。
AskUserQuestion若用户选择「仅作废令牌」,则:
如需保留应用仅作废令牌,请按以下步骤操作:
👉 在https://api.slack.com/apps中打开对应应用 → 'OAuth & Permissions'
👉 点击'User OAuth Token'旁的'Revoke Token'
完成了吗?3-3. 검증
3-3. 验证
재시작 후 으로 Slack MCP가 사라졌는지 확인.
ToolSearch "+slack"重启后通过确认Slack MCP已移除。
ToolSearch "+slack"Linear MCP 제거
Linear MCP删除
감지: 의 존재 여부.
$MCP_PATH.mcpServers["linear-server"]Q. : "Linear MCP 설정을 제거할까요?"
AskUserQuestion"네" 면:
bash
jq 'del(.mcpServers["linear-server"])' "$MCP_PATH" > "$MCP_PATH.tmp" && mv "$MCP_PATH.tmp" "$MCP_PATH"추가 질문. : "Linear 쪽에서 OAuth 연동 권한도 취소할까요?"
AskUserQuestion- 네: 아래 안내
- 아니요: 스킵
"네" 면:
👉 Linear 웹앱 → 오른쪽 상단 프로필 → Settings → API → OAuth applications
👉 'Claude' 또는 'Linear MCP' 항목의 'Revoke' 클릭
완료하셨나요?检测方式:检查中是否存在。
$MCP_PATH.mcpServers["linear-server"]问题::「要移除Linear MCP配置吗?」
AskUserQuestion若用户选择「是」,则执行:
bash
jq 'del(.mcpServers["linear-server"])' "$MCP_PATH" > "$MCP_PATH.tmp" && mv "$MCP_PATH.tmp" "$MCP_PATH"追加问题::「也要取消Linear端的OAuth联动权限吗?」
AskUserQuestion- 是:提供以下指引
- 否:跳过
若用户选择「是」,则:
👉 打开Linear网页应用 → 右上角个人资料 → Settings → API → OAuth applications
👉 找到'Claude'或'Linear MCP'项目并点击'Revoke'
完成了吗?Notion MCP 제거
Notion MCP删除
감지: 의 존재 여부.
$MCP_PATH.mcpServers.notionQ. : "Notion MCP 설정을 제거할까요?"
AskUserQuestion"네" 면:
bash
jq 'del(.mcpServers.notion)' "$MCP_PATH" > "$MCP_PATH.tmp" && mv "$MCP_PATH.tmp" "$MCP_PATH"추가 질문. Notion 워크스페이스에서 권한 철회:
👉 Notion → Settings & members → Connections (또는 My connections)
👉 'Claude' 연결 찾아서 'Remove' 클릭
완료하셨나요?检测方式:检查中是否存在。
$MCP_PATH.mcpServers.notion问题::「要移除Notion MCP配置吗?」
AskUserQuestion若用户选择「是」,则执行:
bash
jq 'del(.mcpServers.notion)' "$MCP_PATH" > "$MCP_PATH.tmp" && mv "$MCP_PATH.tmp" "$MCP_PATH"追加问题:从Notion工作区撤销权限:
👉 打开Notion → Settings & members → Connections(或My connections)
👉 找到'Claude'连接并点击'Remove'
完成了吗?GitHub CLI 로그아웃
GitHub CLI登出
감지: 0 exit인지.
gh auth statusQ. : "GitHub CLI에서 로그아웃할까요? ()"
AskUserQuestiongh auth logout- 옵션: 네, 로그아웃 / 아니요, 유지
"네" 면 실행. 대화형 입력이 필요하면 사용자에게 터미널에서 직접 실행하도록 안내:
gh auth logout터미널에서 직접 실행해주세요:
gh auth logout
호스트 선택(github.com) → 확인. 완료하셨나요?检测方式:检查的退出码是否为0。
gh auth status问题::「要从GitHub CLI登出吗?()」
AskUserQuestiongh auth logout- 选项:是,登出 / 否,保留
若用户选择「是」,则执行。若需要交互式输入,则指引用户在终端中直接执行:
gh auth logout请在终端中直接执行以下命令:
gh auth logout
选择主机(github.com) → 确认。完成了吗?스킬 파일 제거 (s-skills 자체)
移除技能文件(s-skills本身)
여기까지는 토큰·설정만 지웠고, 스킬 프로그램 파일( 또는 )은 아직 그대로 남아 있음. 이 단계에서 파일까지 철거한다.
~/.claude/skills/s-skill-*./.claude/skills/s-skill-*감지: 전역/프로젝트 양쪽에서 디렉토리 존재 여부.
s-skill-*bash
GLOBAL_SKILLS=$(ls -1 "$HOME/.claude/skills" 2>/dev/null | grep -E '^s-skill-' | tr '\n' ' ')
LOCAL_SKILLS=$(ls -1 ".claude/skills" 2>/dev/null | grep -E '^s-skill-' | tr '\n' ' ')둘 다 없으면 이 섹션 전체 스킵.
Q. : "설치된 s-skill 파일을 제거할까요? (재설치 전까지는 슬래시 명령이 사라집니다)"
AskUserQuestion- 옵션:
- 네, 전역에서 제거 ()
~/.claude/skills/ - 네, 프로젝트에서 제거 ()
./.claude/skills/ - 네, 둘 다 제거
- 아니요, 유지
- 뭐 하는 거예요?
- 네, 전역에서 제거 (
"뭐 하는 거예요?" 면 설명:
로 설치된 스킬 파일(심볼릭 링크/복사본)을 지웁니다. 이건 로컬 파일만 지우는 거라 GitHub의 원본 레포와는 무관합니다. 나중에 다시 쓰려면npx skills remove한 번이면 복원됩니다.npx skills add Salesmap-tech/s-skill -s '*' -g
"네, ..." 중 하나를 고르면:
- 해당 scope 플래그(또는 없음)로
-g를 대화형으로 실행하도록 사용자에게 터미널 명령 안내한다. (Claude Code Bash는 TTY가 아니어서npx skills remove의 체크박스 UI가 제대로 안 돌 수 있음.)skills remove
터미널에서 직접 실행해주세요:到目前为止仅删除了令牌·配置,技能程序文件(或)仍保留。此阶段将彻底移除这些文件。
~/.claude/skills/s-skill-*./.claude/skills/s-skill-*检测方式:检查全局/项目两端是否存在目录。
s-skill-*bash
GLOBAL_SKILLS=$(ls -1 "$HOME/.claude/skills" 2>/dev/null | grep -E '^s-skill-' | tr '\n' ' ')
LOCAL_SKILLS=$(ls -1 ".claude/skills" 2>/dev/null | grep -E '^s-skill-' | tr '\n' ' ')若两者都不存在,则跳过整个章节。
问题::「要移除已安装的s-skill文件吗?(重新安装前,斜杠命令将消失)」
AskUserQuestion- 选项:
- 是,从全局移除 ()
~/.claude/skills/ - 是,从项目移除 ()
./.claude/skills/ - 是,两者都移除
- 否,保留
- 这是做什么的?
- 是,从全局移除 (
若用户选择「这是做什么的?」,则说明:
通过移除已安装的技能文件(符号链接/副本)。此操作仅删除本地文件,与GitHub的原始仓库无关。如需再次使用,只需执行npx skills remove即可恢复。npx skills add Salesmap-tech/s-skill -s '*' -g
若用户选择「是,...」中的任一选项,则:
- 指引用户在终端中通过对应范围标志(或无)交互式执行
-g。(Claude Code Bash无TTY,npx skills remove的复选框UI可能无法正常运行。)skills remove
请在终端中直接执行以下命令:전역 스킬 제거 (대화형 선택)
移除全局技能(交互式选择)
npx skills remove -g
npx skills remove -g
프로젝트 스킬 제거 (대화형 선택)
移除项目技能(交互式选择)
npx skills remove
2. 목록을 보여주면서 원치 않는 것만 해제하고 엔터. `s-skill-setup`은 마지막까지 남겨두면 나중에 재설치할 때 편하다는 팁을 같이 안내.
3. 완료 확인 `AskUserQuestion`: "제거 완료하셨나요?" (네 / 아직 / 실패했어요)
4. 검증:
```bash
ls -1 "$HOME/.claude/skills" 2>/dev/null | grep -E '^s-skill-' || echo "전역: 없음"
ls -1 ".claude/skills" 2>/dev/null | grep -E '^s-skill-' || echo "프로젝트: 없음"주의: Shiftee CLI 바이너리는 이제 에 자동 캐시되며, 위 "Shiftee 로그아웃" 단계에서 해당 캐시도 같이 지워진다. 그래서 Shiftee 로그아웃 단계를 먼저 처리한 뒤에 이 단계가 와야 한다 — 이미 순서가 그렇게 돼 있음.
~/.cache/s-skill-shiftee/shifteenpx skills remove
2. 展示列表并提示用户仅取消不需要的项目后按回车。同时提示用户保留`s-skill-setup`可方便后续重新安装。
3. 通过`AskUserQuestion`确认完成情况:「删除完成了吗?」(是 / 尚未 / 失败了)
4. 验证:
```bash
ls -1 "$HOME/.claude/skills" 2>/dev/null | grep -E '^s-skill-' || echo "전역: 없음"
ls -1 ".claude/skills" 2>/dev/null | grep -E '^s-skill-' || echo "프로젝트: 없음"注意:Shiftee CLI二进制文件会自动缓存至,且在「Shiftee登出」阶段已清理该缓存。因此必须先处理Shiftee登出阶段,再执行此阶段——当前流程已按此顺序设置。
~/.cache/s-skill-shiftee/shiftee4단계. 최종 리포트
4阶段. 最终报告
🧹 정리 완료
- ✅ Shiftee 로그아웃
- ✅ Slack MCP 제거 (앱은 브라우저에서 수동 삭제 대기)
- ⏭️ Linear MCP (유지)
- ⏭️ Notion MCP (유지)
- ⏭️ GitHub CLI (유지)
- ✅ 스킬 파일 제거 (전역 4개, 프로젝트 유지)
백업 파일들:
- ~/.config/shiftee-cli/config.json.bak
- $MCP_PATH.bak
다시 세팅하고 싶으시면:
npx skills add Salesmap-tech/s-skill -s '*' -g # 스킬 재설치
/s-skill-setup # 토큰/MCP 재설정🧹 清理完成
- ✅ Shiftee登出
- ✅ Slack MCP移除(应用待在浏览器中手动删除)
- ⏭️ Linear MCP(保留)
- ⏭️ Notion MCP(保留)
- ⏭️ GitHub CLI(保留)
- ✅ 技能文件移除(全局4个,项目保留)
备份文件:
- ~/.config/shiftee-cli/config.json.bak
- $MCP_PATH.bak
如需重新设置,请执行:
npx skills add Salesmap-tech/s-skill -s '*' -g # 重新安装技能
/s-skill-setup # 重新配置令牌/MCP.mcp.json
편집 규칙 (구현 노트)
.mcp.json.mcp.json
编辑规则(实现说明)
.mcp.json- 쓰기 전 반드시 으로 백업.
$MCP_PATH.bak - 은 in-place 동작이 아니므로 tmp 파일로 쓴 뒤
jq del(...).mv - 삭제 후 가 비면 빈 객체로 유지 (
.mcpServers). 파일 자체를 지우지 않는다 — 다른 MCP 설정이 있을 수 있음.{"mcpServers": {}} - 없으면
jq안내 후 중단.brew install jq
- 写入前必须通过创建备份.
$MCP_PATH.bak - 不支持原地操作,需写入临时文件后再
jq del(...).mv - 删除后若为空,需保持空对象格式 (
.mcpServers)。不得删除文件本身——可能存在其他MCP配置。{"mcpServers": {}} - 若无,则提示
jq后终止操作。brew install jq
행동 규칙
行为规则
- 한 번에 하나씩 질문. 체크리스트 여러 개 동시 금지.
- 삭제 전 백업. , Shiftee config 둘 다
.mcp.json남긴다..bak - 외부 시스템 삭제는 안내 + 확인. 대신 눌러주지 않는다.
- "건너뛰기" 옵션 항상 제공.
- 파일에 쓴 토큰은 출력에 echo 금지. 백업 파일 이름만 언급.
- 에러 시 원상 복구 안내. 한 줄로 되돌릴 수 있다는 걸 알려준다.
mv $MCP_PATH.bak $MCP_PATH
$ARGUMENTS
- 一次仅询问一个问题。禁止同时展示多个复选框列表。
- 删除前必须备份。和Shiftee配置均需保留
.mcp.json备份。.bak - 外部系统删除仅提供指引 + 确认。不得代为操作。
- 始终提供「跳过」选项.
- 禁止在输出中回显文件中存储的令牌。仅提及备份文件名。
- 出错时提供恢复指引。告知用户可通过一键恢复。
mv $MCP_PATH.bak $MCP_PATH
$ARGUMENTS