Loading...
Loading...
Compare original and translation side by side
这份 SKILL.md 是对话剧本。每个阶段都给你明确的台词、输入解析、要跑的命令和 失败分支。严格按阶段顺序执行,不要跳步。
This SKILL.md is a dialogue script. Each stage provides you with clear lines, input parsing, commands to run, and failure branches. Strictly follow the stage order, do not skip steps.
SBTI_HOME="$(
for d in "$HOME/.claude/skills/social-sbti" \
"$(pwd)/.claude/skills/social-sbti" \
"$(pwd)/skills/social-sbti" \
"$HOME/.claude/plugins/social-sbti/social-sbti"; do
[ -f "$d/SKILL.md" ] && echo "$d" && break
done
)"
export SBTI_HOME
echo "SBTI_HOME=$SBTI_HOME"export SBTI_HOME=<路径>"$SBTI_HOME/bin/sbti" <subcmd>SBTI_HOME="$(
for d in "$HOME/.claude/skills/social-sbti" \
"$(pwd)/.claude/skills/social-sbti" \
"$(pwd)/skills/social-sbti" \
"$HOME/.claude/plugins/social-sbti/social-sbti"; do
[ -f "$d/SKILL.md" ] && echo "$d" && break
done
)"
export SBTI_HOME
echo "SBTI_HOME=$SBTI_HOME"export SBTI_HOME=<path>"$SBTI_HOME/bin/sbti" <subcmd>🎭 Social-SBTI 人格画像(仅供娱乐 · 只分析本人或公开公众人物)
请选择要分析的平台:
1. 即刻
2. X (Twitter)12即刻XTwitter1即刻jikePLATFORM=jike2xXtwitterPLATFORM=x@samaAI产品黄叔🎭 Social-SBTI Personality Profile (For entertainment only · Only analyze yourself or fully public figures)
Please select the platform to analyze:
1. Jike
2. X (Twitter)12JikeXTwitter1JikejikePLATFORM=jike2xXtwitterPLATFORM=x@samaAI产品黄叔好的,分析即刻用户。请贴一下对方的即刻主页 URL 或 username。
示例:
https://web.okjike.com/u/E272054E-D904-4F13-A7EC-9ABD2CBF209E
或直接 username好的,分析 X 用户。请贴一下对方的 X handle / 主页 URL / user id。
示例:
@sama
https://x.com/elonmusk
44196397 (user id,最稳,不怕改名)TARGET=<用户输入>确认一下,这是你自己的账号,或者是完全公开的公众人物吗? 本工具不分析前任、同事、面试官、投资人、相亲对象。
Got it, analyzing Jike user. Please paste the user's Jike homepage URL or username.
Examples:
https://web.okjike.com/u/E272054E-D904-4F13-A7EC-9ABD2CBF209E
Or directly usernameGot it, analyzing X user. Please paste the user's X handle / homepage URL / user id.
Examples:
@sama
https://x.com/elonmusk
44196397 (user id, most stable, not affected by name changes)TARGET=<user input>Confirm, is this your own account, or a fully public figure? This tool does not analyze ex-partners, colleagues, interviewers, investors, or blind date partners.
"$SBTI_HOME/bin/sbti" doctor --fix --platform "$PLATFORM"--fix"$SBTI_HOME/bin/sbti" doctor --fix --platform "$PLATFORM"--fixjike-auth首次扫码拿 token,马上显示二维码。mkdir -p ~/.config/sbti && rm -f ~/.config/sbti/jike-tokens.json && \
"$SBTI_HOME/bin/sbti" jike-auth > ~/.config/sbti/jike-tokens.jsonsbti jike-authjike-authpip install --user~/Library/Python/3.x/binsbti jike-authrun_in_background: trueRead[+] Session: 642d995d-31a6-...
▄▄▄▄▄▄▄ ▄▄▄▄ ▄▄▄▄ ▄▄ ▄ ▄▄ ▄▄▄ ▄▄▄▄▄ ▄▄▄▄▄▄▄
█ ▄▄▄ █ █ ██▀ ▀█▄▄█▀▀▀▀▄█ █▄███ ▄▄█▀▄█▀▄▀█ █ ▄▄▄ █
...约 25 行 QR...
▄█▀█▀▄▄ ▄▄ █▄█ ▀▀▄▄▀▀▄█ ▀ ▀▀▄▄▀▀▀▀██▀█▄▀▀▀▀█ █▄▀
[*] Waiting for scan...Waiting for scan...[+] Session:Waiting for scan<原样粘贴 stderr 内容>👆 请用即刻 App 扫上面这个二维码。扫完我这里会自动继续,不用切回来告诉我。
TaskOutputblock: true, timeout: 120000Read~/.config/sbti/jike-tokens.json"$SBTI_HOME/bin/sbti" config jike --from-inbox✓ 即刻 tokens 已从 inbox 导入| 症状 | 处理 |
|---|---|
| 等了 2 分钟没扫 → 任务退出 1 | 告诉用户"扫码超时了,要不要再试一次?",确认后回步骤 ① |
jike-tokens.json 存在但 | jike-auth 中途挂了, |
| 后台任务 output 文件迟迟没有 QR 块字符 | jike-auth 可能卡在网络, |
jike-authFirst scan to get token, QR code will be displayed shortly.mkdir -p ~/.config/sbti && rm -f ~/.config/sbti/jike-tokens.json && \
"$SBTI_HOME/bin/sbti" jike-auth > ~/.config/sbti/jike-tokens.jsonsbti jike-authjike-authpip install --user~/Library/Python/3.x/binsbti jike-authrun_in_background: trueRead[+] Session: 642d995d-31a6-...
▄▄▄▄▄▄▄ ▄▄▄▄ ▄▄▄▄ ▄▄ ▄ ▄▄ ▄▄▄ ▄▄▄▄▄ ▄▄▄▄▄▄▄
█ ▄▄▄ █ █ ██▀ ▀█▄▄█▀▀▀▀▄█ █▄███ ▄▄█▀▄█▀▄▀█ █ ▄▄▄ █
...about 25 lines of QR...
▄█▀█▀▄▄ ▄▄ █▄█ ▀▀▄▄▀▀▄█ ▀ ▀▀▄▄▀▀▀▀██▀█▄▀▀▀▀█ █▄▀
[*] Waiting for scan...Waiting for scan...[+] Session:Waiting for scan<Paste original stderr content here>👆 Please scan the above QR code with the Jike App. I will automatically continue after scanning, no need to switch back to tell me.
TaskOutputblock: true, timeout: 120000Read~/.config/sbti/jike-tokens.json"$SBTI_HOME/bin/sbti" config jike --from-inbox✓ Jike tokens imported from inbox| Symptom | Handling |
|---|---|
| No scan after 2 minutes → task exits with code 1 | Tell the user "Scan timed out, would you like to try again?", return to step ① after confirmation |
jike-tokens.json exists but | jike-auth crashed midway, |
| Background task output file has no QR block characters for a long time | jike-auth may be stuck on network, |
首次使用 X,需要从浏览器 cookies 拿两个字段:
1. 在浏览器登录 https://x.com
2. F12 打开 DevTools → Application → Cookies → https://x.com
3. 找这两个 cookie,复制它们的 Value:
- auth_token (长字符串)
- ct0 (长字符串,CSRF token)
直接贴给我,格式随意,比如:
auth_token = xxxxxx
ct0 = yyyyyyauth_tokenct0"$SBTI_HOME/bin/sbti" config x \
--auth-token "<auth_token 值>" \
--ct0 "<ct0 值>"~/.config/sbti/x_cookies.jsonX 风控很严。脚本已经内置了自限速,但建议:单次 ≤ 500 条,一天别跑超过 10 个不同用户,cookies 别 commit 进 git。如果被限流了停一天再试。
First time using X, need to get two fields from browser cookies:
1. Log in to https://x.com in your browser
2. Press F12 to open DevTools → Application → Cookies → https://x.com
3. Find these two cookies and copy their Values:
- auth_token (long string)
- ct0 (long string, CSRF token)
Paste them directly, format doesn't matter, e.g.:
auth_token = xxxxxx
ct0 = yyyyyyauth_tokenct0"$SBTI_HOME/bin/sbti" config x \
--auth-token "<auth_token value>" \
--ct0 "<ct0 value>"~/.config/sbti/x_cookies.jsonX has strict risk control. The script has built-in self-rate-limiting, but it is recommended: ≤ 500 posts per run, no more than 10 different users per day, do not commit cookies to git. If rate-limited, stop and try again the next day.
"$SBTI_HOME/bin/sbti" fetch "$PLATFORM" "$TARGET" --limit 200./sbti-output/<name>_raw.jsonRAW_FILE| 错误 | 处理 |
|---|---|
| 401 / token expired | 让用户重跑 jike-auth(即刻)或重新导 cookies(X),回阶段 4 |
| 404 user not found | 让用户确认 URL / username 是否对 |
| 429 / rate limited | 停,让用户等 30 分钟再来 |
| 网络错误 | 让用户检查网络,重试 |
"$SBTI_HOME/bin/sbti" fetch "$PLATFORM" "$TARGET" --limit 200./sbti-output/<name>_raw.jsonRAW_FILE| Error | Handling |
|---|---|
| 401 / token expired | Ask user to re-run jike-auth (Jike) or re-import cookies (X), return to Phase 4 |
| 404 user not found | Ask user to confirm if the URL / username is correct |
| 429 / rate limited | Stop, ask user to come back after 30 minutes |
| Network error | Ask user to check network and retry |
Read$RAW_FILEposts[]Read$SBTI_HOME/docs/SCORING_RUBRIC.mdS1 S2 S3 E1 E2 E3 A1 A2 A3 Ac1 Ac2 Ac3 So1 So2 So3post_idoverall_impressionpersonality_descriptionquotescontent{
"profile": { "screen_name": "...", "platform": "jike|x",
"bio": "...", "post_count": 200 },
"personality_description": "...",
"overall_impression": "...",
"quotes": ["...", "...", "...", "..."],
"scores": [
{
"dimension": "S1",
"level": "H",
"confidence": 0.9,
"evidence": ["<真实 post_id>", "<真实 post_id>"],
"reasoning": "不超过 40 字"
}
// ... 共 15 条
]
}./sbti-output/<name>_scores.json<name>"drunk": trueRead$RAW_FILEposts[]Read$SBTI_HOME/docs/SCORING_RUBRIC.mdS1 S2 S3 E1 E2 E3 A1 A2 A3 Ac1 Ac2 Ac3 So1 So2 So3post_idoverall_impressionpersonality_descriptionquotescontent{
"profile": { "screen_name": "...", "platform": "jike|x",
"bio": "...", "post_count": 200 },
"personality_description": "...",
"overall_impression": "...",
"quotes": ["...", "...", "...", "..."],
"scores": [
{
"dimension": "S1",
"level": "H",
"confidence": 0.9,
"evidence": ["<real post_id>", "<real post_id>"],
"reasoning": "No more than 40 words"
}
// ... total 15 entries
]
}./sbti-output/<name>_scores.json<name>"drunk": trueSCORES_FILE=./sbti-output/<name>_scores.jsonSCORES_FILE=./sbti-output/<name>_scores.json"$SBTI_HOME/bin/sbti" finalize "$SCORES_FILE"match.pypatternpersonalitymake_card.pyrender_png.py"$SBTI_HOME/bin/sbti" finalize "$SCORES_FILE"match.pypatternpersonalitymake_card.pyrender_png.py━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
🎭 <screen_name>
【<CODE>】· <中文名> <mascot>
「<标语>」
匹配度: <XX>%
模式串: <pattern>
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━自我模型
S1 自尊自信 H — <reasoning>
S2 自我清晰 H — <reasoning>
S3 核心价值 H — <reasoning>
情感模型
E1 依恋安全 H — <reasoning>
...overall_impression📁 产物:
sbti-output/<name>_scores.json (完整数据)
sbti-output/<name>-sbti.html (可分享卡片)
sbti-output/<name>-sbti.png (截图,如果 playwright 就绪)open sbti-output/<name>-sbti.png
open sbti-output/<name>-sbti.html━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
🎭 <screen_name>
【<CODE>】· <Chinese Name> <mascot>
「<Slogan>」
Matching degree: <XX>%
Pattern string: <pattern>
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━Self Model
S1 Self-esteem & Confidence H — <reasoning>
S2 Self-clarity H — <reasoning>
S3 Core Values H — <reasoning>
Emotional Model
E1 Attachment Security H — <reasoning>
...overall_impression📁 Outputs:
sbti-output/<name>_scores.json (Complete data)
sbti-output/<name>-sbti.html (Shareable card)
sbti-output/<name>-sbti.png (Screenshot, if playwright is ready)open sbti-output/<name>-sbti.png
open sbti-output/<name>-sbti.htmldocs/SCORING_RUBRIC.mddocs/DISCLAIMER.mdbin/sbtisbti --helpexamples/huangshu_scores.jsondocs/SCORING_RUBRIC.mddocs/DISCLAIMER.mdbin/sbtisbti --helpexamples/huangshu_scores.json