rcl-score

rcl-score is a skill for Claude Code, Codex from ZhenyuanPAN822/relationship-candlestick-lab. It costs 80 tokens per session (4,865 once invoked), scanned A, original, MIT.

A tool that turns a two-person chat export into a candlestick-style chart of relationship changes. Each chart candle represents a consecutive block of messages from one person or a period of conversation.

In plain words
What is it for?
Use it with a WeChat CSV, JSON file, or plain-text chat export to score the conversation and create message-level results for a local web view.
Why use it?
It provides a structured way to inspect how the measured relationship signal changes across a chat. Processing happens locally, so the chat data is not uploaded to the cloud.

Skill for Claude CodeCodex

Written for no agent in particular: nothing here depends on one.

Needs its repository: it runs a file that does not travel with it, so clone the repository first. The line is python scripts/wechat_to_standard.py \.

Good fit Use it with a WeChat CSV, JSON file, or plain-text chat export to score the conversation and create message-level results for a local web view.

Compare 6 skills from other repositories ↓
Install

Getting it into your agent

It runs from inside its repository, so the clone comes first — what it calls does not travel with the file alone.

Clone the repo
git clone --depth 1 https://github.com/ZhenyuanPAN822/relationship-candlestick-lab
agentmods
npx agentmods add skills/zhenyuanpan822/relationship-candlestick-lab/skill

Made for: Claude Code, Codex.

Wrote this? Show the measurements

A badge with what this costs and how it scanned, read live from this page, so it follows the numbers instead of freezing them. Markdown for a README, HTML for a documentation site or a project page.

agentmods badge for rcl-score

README.md
[![agentmods](https://agentmods.dev/badge/skills/zhenyuanpan822/relationship-candlestick-lab/skill/github.svg)](https://agentmods.dev/skills/zhenyuanpan822/relationship-candlestick-lab/skill)
Your own site
<a href="https://agentmods.dev/skills/zhenyuanpan822/relationship-candlestick-lab/skill"><img src="https://agentmods.dev/badge/skills/zhenyuanpan822/relationship-candlestick-lab/skill/github.svg" alt="Measured on agentmods" height="20"></a>

Or the 80×15 button, for a site that already has a row of RSS and ATOM ones. Only the verdict fits; the numbers stay here.

agentmods 80×15 button for rcl-score

Your own site · 80×15
<a href="https://agentmods.dev/skills/zhenyuanpan822/relationship-candlestick-lab/skill"><img src="https://agentmods.dev/badge/skills/zhenyuanpan822/relationship-candlestick-lab/skill.svg" alt="Reviewed on agentmods" width="80" height="20"></a>
Per session 80 Skills are progressive disclosure: only the name and description are preloaded; the body loads when the skill is used.
When invoked 4,865 The whole file, excluding the scripts and references it only reads on demand.
Security scan A 0 findings. A grade says what 26 rules found in the file — not that it is safe.
Origin original No closer match found in the catalogue.
Token cost

What it costs to keep this loaded

Counted locally with the o200k_base tokenizer, which is exact for GPT models; Claude uses its own tokenizer and its counts differ. Treat this as one consistent yardstick across the catalogue rather than a bill. Prices are per million input tokens.

ModelPer sessionOnce invoked
Fable 5.1 $0.00080 $0.04865
Opus 5 $0.00040 $0.02433
Sonnet 5 $0.00016 $0.00973
Haiku 4.5 $0.00008 $0.00487

Measured 10d ago against content hash 35183bd8c6ab, method: parsed. Prices are Anthropic first-party input rates as of 2026-09-09, from the pricing page.

Security

Grade A, and why

rcl-score scanned grade A with 0 findings against 26 rules in 11 categories — prompt injection, anti-refusal, data exfiltration, privilege escalation, supply chain, agent snooping, system-prompt leakage, SSRF and excessive agency — measured 10d ago.

A static scan of the body, not an audit. Every finding is printed with the line that produced it so you can judge whether it matters here. A mod is markdown that instructs an agent; that is exactly why what it instructs is worth reading.

Nothing flagged

None of the 26 patterns this scan looks for appear in this file: no shell pipes, no recursive deletes, no credential paths, no hidden text, no instruction-override or anti-refusal phrasing, no agent-config snooping. That is not a guarantee, it is the absence of the things that are checkable.

skill/SKILL.md · 397 lines

How it starts

The opening of the file, as written. The whole thing — 397 lines — stays where its author put it; the contents beside it link to each section on GitHub.

Relationship Candlestick Lab · Scoring Skill (v3.1)

This skill has TWO operating modes. Detect which one you're in by looking at the first user message:

  • Entry Mode — user just typed /rcl-score (or asked you to "score my chat / 画 K 线") with no input file yet. Run the Entry Protocol below.
  • Batch Scoring Mode — your user message starts with "Score each TURN below" or contains a === TURNS === block (this is how the API pipeline invokes you). Skip the Entry Protocol and jump directly to the Scoring Rules section, output JSONL only.

⓪ Entry Protocol(仅当用户直接调用 skill 时)

对用户说的话(仅这一段对外输出,Step 1–4 不要复述给用户)

回复用户(中文,简洁,5–8 行以内):

我会把你的聊天记录画成 K 线图,每根 K 线代表一段时间的关系强度变化。

请准备一个聊天导出文件(任选其一):

  • 微信导出 CSV(推荐,pywxdump / Memotrace 都可以)
  • 或 JSON / 纯文本(每行 YYYY-MM-DD HH:MM[:SS] sender: message

把文件的绝对路径粘贴给我。

⚠️ 模型 / effort 推荐

  • ClaudeSonnet 4.6 + effort low
  • GPT 系列GPT-5 / 5.4 / 5.5 + effort low

耗时预估:每 1000 条消息约 7 分钟(取决于模型 / effort)。

全程在本地处理,聊天数据不上传云端。

等用户回复文件路径再继续。

Step 1–4(你内部按顺序执行,不需要把命令贴给用户)

Step 1 — CSV → messages.jsonl

<job_name> 用源文件名(去后缀)。

python scripts/wechat_to_standard.py \
    --input "<用户给的路径>" \
    --output "output/_jobs/<job_name>/messages_standard.csv" \
    --me me --them other

然后 Python 把标准 CSV 转 messages.jsonl(每行带 i 索引)。 如果用户给的是 JSON/TXT,改用 python -m relationship_candlestick.cli prepare ...

Step 2 — 预处理:剔单字 + 聚合 turns

python scripts/preprocess_turns.py \
    --input  output/_jobs/<job_name>/messages.jsonl \
    --out-dir output/_jobs/<job_name>/ \
    --gap-min 10

Step 3 — 评分:你(LLM)按下面的 Scoring Rules 给每个 turn 打分

读取 output/_jobs/<job_name>/turns.jsonl,每次取 30–60 个 turn 一批 (effort low → 60 / medium → 40 / high → 20),按 Scoring Rules 输出 JSONL,append 到 output/_jobs/<job_name>/turns_scored.jsonl

🚫 这一步绝对不要做的事(重要):

  • 不要给用户出"A / B / C"菜单让他选打分方式。 Skill 触发后就只有一条路:你(IDE 里的 LLM)从头到尾把 turns 全部打完。没有分叉。
  • 不要把 scripts/score_turns_api.py 作为选项推荐给用户。 那个脚本是给"不走 skill"的 API 模式用户的,与 skill 用户无关。即使 repo 里能看到它,也当它不存在。
  • 不要因为 turn 数多就停下来问"要不要继续"。 500、1000、2000 turns 都按 effort 自动分批往下打,不要中途请示。如果担心耗时,启动前已经在 Entry Protocol 里告知"每 1000 条 ~7 分钟"——用户已经知道。
  • 不要因为"会吃当前会话上下文"就推荐用户换流程。 这就是 skill 的设计——上下文够用,旧批次的 JSONL 输出可以丢,框架靠 i 重新拼。
  • 不要在打分中途总结"已经打了 X 批,剩下 Y 批,要不要继续"。 闷头打完再说话。

Read the full file on GitHub · 397 lines

Changes

What this file has done since we first saw it

Hashed on every crawl. A supply-chain change to an agent config is a question of when, not whether, so the history is kept rather than the latest state alone.

  1. 10d ago First seen · 397 lines · 80 tokens per session scan A 35183bd8c6ab

Subscribe to this mod's changes

rcl-score is a skill published in the GitHub repository ZhenyuanPAN822/relationship-candlestick-lab (84 stars, last pushed 4mo ago), licensed MIT. It adds 80 tokens to every session and 4,865 once invoked, about $0.0004 per session on Opus 5. A static security scan graded it A with 0 findings. No closer match exists in the catalogue, so it is treated as the original; first seen 2026-08-30.

Related

Other skills, from other repositories