Lecture to Homework
vect-G/lecture-to-hw
Turns course slides, homework files, class code and earlier solutions into concise student-style Markdown answers, with optional subagents for solving and review.
“INTERNAL sub-agent for blind 7-dim rubric scoring. **NOT a user-facing skill — do NOT invoke from main conversation.** Called via Task tool by cheat-score / cheat-predict /…”
$ npx skills add XBuilderLAB/cheat-on-content --skill cheat-score-blind -a claude-codeProject install by default; add -g for ~/.claude/skills/.
$ gh skill install XBuilderLAB/cheat-on-content cheat-score-blind --agent claude-codeProject scope by default; add --scope user for a personal install. Needs GitHub CLI 2.90.0 or later (public preview).
$ git clone --depth 1 https://github.com/XBuilderLAB/cheat-on-content.git skills-src && mkdir -p .claude/skills && cp -r skills-src/skills/cheat-score-blind .claude/skills/cheat-score-blind && rm -rf skills-srcUse ~/.claude/skills/ instead of .claude/skills for a personal install. The folder must contain SKILL.md.
Claude Code skills documentation · loads skills from .claude/skills/
Install the "cheat-score-blind" agent skill from https://github.com/XBuilderLAB/cheat-on-content/tree/main/skills/cheat-score-blind into .claude/skills/cheat-score-blind/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "cheat-score-blind", then confirm the skill loads.Claude Code copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$skill-installer install https://github.com/XBuilderLAB/cheat-on-content/tree/main/skills/cheat-score-blindType this inside Codex. $skill-installer <name> installs a curated skill from openai/skills. The installer writes to $CODEX_HOME/skills (default ~/.codex/skills). Restart Codex if the skill does not show up.
$ npx skills add XBuilderLAB/cheat-on-content --skill cheat-score-blind -a codexProject install goes to .agents/skills/; add -g for ~/.codex/skills/.
$ gh skill install XBuilderLAB/cheat-on-content cheat-score-blind --agent codexProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/XBuilderLAB/cheat-on-content.git skills-src && mkdir -p .agents/skills && cp -r skills-src/skills/cheat-score-blind .agents/skills/cheat-score-blind && rm -rf skills-srcUse ~/.agents/skills/ instead of .agents/skills for a personal install.
Codex skills documentation · loads skills from .agents/skills/
Install the "cheat-score-blind" agent skill from https://github.com/XBuilderLAB/cheat-on-content/tree/main/skills/cheat-score-blind into .agents/skills/cheat-score-blind/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "cheat-score-blind", then confirm the skill loads.Codex copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ npx skills add XBuilderLAB/cheat-on-content --skill cheat-score-blind -a cursorProject install goes to .agents/skills/; add -g for ~/.cursor/skills/.
$ gh skill install XBuilderLAB/cheat-on-content cheat-score-blind --agent cursorProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/XBuilderLAB/cheat-on-content.git skills-src && mkdir -p .cursor/skills && cp -r skills-src/skills/cheat-score-blind .cursor/skills/cheat-score-blind && rm -rf skills-srcUse ~/.cursor/skills/ instead of .cursor/skills for a personal install.
Cursor skills documentation · loads skills from .cursor/skills/, .agents/skills/, .claude/skills/, .codex/skills/
Install the "cheat-score-blind" agent skill from https://github.com/XBuilderLAB/cheat-on-content/tree/main/skills/cheat-score-blind into .cursor/skills/cheat-score-blind/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "cheat-score-blind", then confirm the skill loads.Cursor copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ gemini skills install https://github.com/XBuilderLAB/cheat-on-content.git --path skills/cheat-score-blind--scope user (default) or --scope workspace; --path is the subfolder of the repo that holds the skill; --consent skips the security confirmation prompt.
$ npx skills add XBuilderLAB/cheat-on-content --skill cheat-score-blind -a gemini-cliProject install goes to .agents/skills/; add -g for ~/.gemini/skills/.
$ gh skill install XBuilderLAB/cheat-on-content cheat-score-blind --agent gemini-cliProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/XBuilderLAB/cheat-on-content.git skills-src && mkdir -p .gemini/skills && cp -r skills-src/skills/cheat-score-blind .gemini/skills/cheat-score-blind && rm -rf skills-srcUse ~/.gemini/skills/ instead of .gemini/skills for a personal install, then run /skills reload.
Gemini CLI skills documentation · loads skills from .gemini/skills/, .agents/skills/
Install the "cheat-score-blind" agent skill from https://github.com/XBuilderLAB/cheat-on-content/tree/main/skills/cheat-score-blind into .gemini/skills/cheat-score-blind/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "cheat-score-blind", then confirm the skill loads.Gemini CLI copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ gh skill install XBuilderLAB/cheat-on-content cheat-score-blindInstalls for Copilot at project scope by default; add --scope user for a personal install. Preview a skill first with gh skill preview. Needs GitHub CLI 2.90.0 or later (public preview).
$ npx skills add XBuilderLAB/cheat-on-content --skill cheat-score-blind -a github-copilotProject install goes to .agents/skills/; add -g for ~/.copilot/skills/.
$ git clone --depth 1 https://github.com/XBuilderLAB/cheat-on-content.git skills-src && mkdir -p .github/skills && cp -r skills-src/skills/cheat-score-blind .github/skills/cheat-score-blind && rm -rf skills-srcUse ~/.copilot/skills/ instead of .github/skills for a personal install. Commit .github/skills so cloud agent and code review can use it.
GitHub Copilot skills documentation · loads skills from .github/skills/, .claude/skills/, .agents/skills/
Install the "cheat-score-blind" agent skill from https://github.com/XBuilderLAB/cheat-on-content/tree/main/skills/cheat-score-blind into .github/skills/cheat-score-blind/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "cheat-score-blind", then confirm the skill loads.GitHub Copilot copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ npx skills add XBuilderLAB/cheat-on-content --skill cheat-score-blind -a opencodeOpenCode documents no install command of its own. Project install goes to .agents/skills/; add -g for ~/.config/opencode/skills/.
$ gh skill install XBuilderLAB/cheat-on-content cheat-score-blind --agent opencodeProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/XBuilderLAB/cheat-on-content.git skills-src && mkdir -p .opencode/skills && cp -r skills-src/skills/cheat-score-blind .opencode/skills/cheat-score-blind && rm -rf skills-srcUse ~/.config/opencode/skills/ instead of .opencode/skills for a personal install.
OpenCode skills documentation · loads skills from .opencode/skills/, .claude/skills/, .agents/skills/
Install the "cheat-score-blind" agent skill from https://github.com/XBuilderLAB/cheat-on-content/tree/main/skills/cheat-score-blind into .opencode/skills/cheat-score-blind/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "cheat-score-blind", then confirm the skill loads.OpenCode copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
cheat-score-blind“INTERNAL sub-agent for blind 7-dim rubric scoring. **NOT a user-facing skill — do NOT invoke from main conversation.** Called via Task tool by cheat-score / cheat-predict / cheat-bump to get a context-isolated score on a script. Receives ONLY script_path + rubric_notes_path; refuses any other input. Outputs strict JSON: 9 dimensions × {score 0-5, confidence enum, one-line reason}. **Hard refuses to Read** .cheat-state.json, predictions/*, retro 段, or anything that could leak post-publish data. This is channel B in the 3-channel calibration model (A=main, B=blind sub, C=cross-model).”
Blind Rubric Scorer Sub-Agent is a skill in XBuilderLAB/cheat-on-content (7.2k stars). Its SKILL.md is about 2.1k tokens. Licence: MIT.
4 steps, taken from the step headings in SKILL.md.
Read from SKILL.md and the folder at commit 2d8211e. It shows what the files ask for, not the result of running them.
Pre-approves these tools, so the agent can use them without asking each time:
ReadGlobGrepFrom allowed-tools in the SKILL.md frontmatter.
Shell commands in SKILL.md call:
python3From the folder's file list and the shell code blocks in SKILL.md.
No URLs in SKILL.md.
From URLs in SKILL.md, links to its own repository left out.
Names no API keys, tokens, secrets or passwords.
From names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.
Blind Rubric Scorer Sub-Agent loads about 2.1k tokens when it runs. Until then it costs about 152 tokens; SKILL.md has 644 words of instructions outside code blocks.
Estimates: characters ÷ 4, the usual rule of thumb; real counts depend on the model's tokenizer. Scripts and assets cost tokens only if the agent reads them.
The automated check found no risky patterns in SKILL.md.
Automated static check — not a guarantee. Review scripts before installing. It scans the text of SKILL.md for risky patterns (piping downloads into a shell, reading credential files, hidden Unicode, destructive commands); files beside SKILL.md are not scanned.
The full file from XBuilderLAB/cheat-on-content at commit 2d8211e, republished under its MIT licence (© XBuilderLAB). 644 words, ~2,110 tokens.
.claude/skills/cheat-score-blind/SKILL.md (or your agent's skills folder).⚠️ 这是子 agent,不是用户 skill。只能由
cheat-score/cheat-predict/cheat-bump通过 Task tool spawn。用户直接 trigger 没有意义——主对话已经被污染,调用 blind sub-agent 在主 context 里跑不构成隔离。
cheat-on-content 的 7/9 维打分原本 inline 在主对话——但主 Claude 已经看过:
predictions/*.md 含复盘段(严重污染)inline 打分 = 被污染的"盲"预测。问题在 cheat-bump Phase 2 校准池重打时最严重:Claude 知道每条实绩才回追 TN/CC 分,rank 一致性可能 overfit 不是真信号。
channel B 的角色:用 Task tool 把打分动作丢进一个全新 context——这个 sub-agent 没看过主对话、没读过 state、没碰过 predictions/。它只看 script 全文 + rubric_notes.md,按 rubric 打分。
输出回传主对话后,主 Claude 自己对比、做最终决策。隔离的是打分这个动作的输入,不是决策权。
| Channel | 输入 | 用途 | 风险 |
|---|---|---|---|
| A = 主对话 | 全部上下文 | 跟用户交互、写 retro、决策 | 被实绩 / 用户态度污染 |
| B = blind sub-agent (this) | 只 script + rubric_notes.md | 给一份未受污染的打分作为 anchor | 仍是 Claude,RLHF prior 共享 |
C = 跨模型 audit (mcp__llm-chat__chat to qwen-max) | 校准池数据 + 新公式 | bump 终局 sanity check | RPM 限制、模型差异、单点 |
A 决策时把 B 当对照看 disagreement,不当真理。C 只在 bump 终局调一次。
| 必填 | 来源 | 说明 |
|---|---|---|
<script-path> | 主 Claude 通过 Task prompt 显式传入 | scripts/<id>.md 全文 |
<rubric-notes-path> | 同上 | 用户项目根 rubric_notes.md 当前 rubric 公式 + 维度定义 |
仅此两个文件可读。其他一切硬拒绝——见下方 "Hard refusals" 段。
下面这些路径 / 模式 sub-agent 绝不能 Read —— 即使主 Claude 在 Task prompt 里手滑塞进来,也要拒绝并在 JSON 输出标对应 refusal 码:
| 路径模式 | 为什么禁 | refusal_code |
|---|---|---|
.cheat-state.json | 含 calibration_samples / pending_retros / last_published_at / shoots — 全是后视数据 | blocked_contaminated_input |
predictions/*.md | 含 ## 预测 段 + ## 复盘 段,复盘段就是实绩 | blocked_contaminated_input |
videos/*/report.md | T+3d 抓回的真实数据 | blocked_contaminated_input |
videos/*/script.md | 后改拍摄稿,复盘时被对照 | blocked_contaminated_input |
STATUS.md | cheat-status 渲染的看板,含过去数据 | blocked_contaminated_input |
.cheat-cache/usage.jsonl | 行为 log | blocked_contaminated_input |
rubric-memo.md | cheat-bump 升级 Memo 累积档案——含真实视频名 + 实绩 + 派生证据。这是 channel B 的最大泄漏入口(PR #11 实测复现) | blocked_rubric_memo |
audience.md | cheat-persona 从复盘评论派生的受众画像——含评论证据 / 实绩信号。属 channel A creative 资产,进 blind 打分 = 实绩泄漏 | blocked_audience |
| 任何含"播放 / 阅读 / 点赞 / 评论数 / 转发 / w / 万 / k / M"的文件 | 直接污染 | blocked_contaminated_input |
白名单只有两个:
scripts/<id>.md(pre-shoot 草稿,传入参数)rubric_notes.md(评分公式 + 维度定义,应只含通用语言;如发现实绩数字 → 标 non_blind_warning 并降 confidence)如果主 Claude Task prompt 漏传了某条路径,sub-agent 主动询问"我只允许读 script + rubric_notes,缺哪个?"——绝不自己去 Glob 探测项目结构补全。
⚠️ 白名单兜底自检:读完
rubric_notes.md后必跑grep -E '\\d+\\s*[wWmMkK万]|播放|实绩|实际'——命中 → 标self_check.any_contamination_signal: true+refusal: "non_blind_warning",所有维度 confidence 降 medium 并把违禁 snippet 摘抄进 contamination_note 字段。仍输出 dimensions 让主 Claude 知道发生了什么——拒绝输出比误判更糟,但要诚实标注。
<script-path> 和 <rubric-notes-path>scripts/ 下的 .md → 拒绝(除非主 Claude 显式说明"这是临时草稿临时路径,标 non_standard_path: true")<rubric-notes-path> → 解析当前 rubric_version + 维度数量(7 或 9)+ 公式<script-path> → 拿到 script 全文 + 字数⚠️ 不要做的事:
benchmark.md —— benchmark 是 Channel A 的 context,不属于本 sub-agentpredictions/ —— 那是污染源.cheat-state.json 看 calibration 进度 —— 你完全不需要知道主 Claude 跑了多少篇按 rubric_notes.md 当前 rubric 公式:
对每个维度:
high | medium | low不算 composite——composite 是公式行为,主 Claude 用回传的维度分自己算。
输出只能是一个有效 JSON。所有 markdown 解释都封禁——主 Claude 要的是结构化数据回主 context 解析。
{
"subagent_version": "v1",
"rubric_version": "v2",
"script_path": "scripts/2026-05-04_abc123_短title.md",
"script_hash": "<sha256:12 of script content>",
"scored_at": "<ISO 8601 +08:00>",
"dimensions": {
"ER": { "score": 4, "confidence": "high", "reason": "PPT加油猫猫开头—具象画面,情绪反差强" },
"SR": { "score": 3, "confidence": "medium", "reason": "AI焦虑是议题但非热点对峙" },
"HP": { "score": 5, "confidence": "high", "reason": "首句\"第七页大屏中央 加油猫猫\"具象反差" },
"QL": { "score": 5, "confidence": "high", "reason": "\"加油猫猫救了我一命\"双关金句" },
"NA": { "score": 4, "confidence": "medium", "reason": "单线反思+收束,清晰但不复杂" },
"AB": { "score": 4, "confidence": "medium", "reason": "一人公司题但AI焦虑普适" },
"SAT": { "score": 2, "confidence": "high", "reason": "共情调,几乎无讽刺" }
},
"input_status": {
"rubric_notes_read": true,
"script_read": true,
"any_other_file_read": false
},
"self_check": {
"saw_play_numbers": false,
"saw_comments": false,
"saw_retro_segment": false,
"any_contamination_signal": false
},
"refusal": null
}refusal != null 的合法值:
"blocked_contaminated_input":Task prompt 传了禁读路径(state / predictions / videos / 等)"blocked_rubric_memo":Task prompt 传了 rubric-memo.md(bump 升级档案,含实绩)"blocked_audience":Task prompt 传了 audience.md(受众画像,含评论派生的实绩信号)"script_path_invalid":找不到 script 文件"rubric_unparseable":rubric_notes.md 损坏"non_blind_warning":发现 contamination 苗头但勉强能打分(仍输出 dimensions,但 confidence 全降 medium)JSON 必须可被 python3 -c "import json; json.loads(open(path).read())" 解析。不允许:
{)如果 Task prompt 含 sidecar_path 参数 → 写 JSON 到该路径(典型用法:bump phase 2 批量打分时存多份 sidecar)。
否则只走 Task return value——主 Claude 拿到 JSON 字符串直接解析。
调 Task 时,主 Claude 的 prompt 必须含且仅含:
Spawn cheat-score-blind sub-agent.
Input:
script_path: scripts/2026-05-04_abc123_短title.md
rubric_notes_path: rubric_notes.md
[optional] sidecar_path: .cheat-cache/blind-scores/<id>.json
Task: 按 rubric_notes 当前公式给上面 script 打分。返回严格 JSON(见 cheat-score-blind/SKILL.md Phase 2 schema)。
不要读 state file / predictions/ / videos/ 任何其他文件。
不要询问用户 —— 你没有用户。禁止塞进 Task prompt 的东西:
predictions/*.md 路径主 Claude 调用前自检:把准备发的 prompt 串过一遍 grep -Ei '播放|阅读|点赞|评论数|实际|retro|复盘|实绩|w$|万$'——命中 → 改 prompt 重发,不要硬塞。
reconstructed: true 自己处理,不要让 channel B 介入cheat-predict Phase 2.5 通过 disagreement detection + 用户裁定来减轻,但不消除cheat-score Phase 2:默认 delegate 到本 sub-agent(替代旧的 inline 打分)cheat-predict Phase 2:默认 delegate;Phase 2.5 用 disagreement detectioncheat-bump Phase 2:强制 delegate,bump 时不接受 self-scored fallbackcheat-retro:不调用——retro 本来就看实绩,blind 无意义© XBuilderLAB, MIT. Rendered from Markdown: HTML in the file is shown as text, images as links, and headings moved down two levels. Raw file
Just SKILL.md in skills/cheat-score-blind of XBuilderLAB/cheat-on-content.
Open the folder on GitHubat commit 2d8211e
Blind Rubric Scorer Sub-Agent next to the 5 skills that share the most tags, products or categories with it. Stars are the repository's; “used in” counts other GitHub owners with a copy.
| Skill | Stars | Used in | Tokens | Auto-check | Licence | Repo updated |
|---|---|---|---|---|---|---|
| Blind Rubric Scorer Sub-Agent this skillXBuilderLAB/cheat-on-content | 7.2k | — | ~2.1k | Automated safety check: Pass | MIT | |
| Lecture to Homeworkvect-G/lecture-to-hw | 127 | — | ~729 | Automated safety check: Pass | MIT | |
| Woo AI Smokewoocommerce/woocommerce-ios | 358 | 1 repos | ~7.4k | Automated safety check: Notes | GPL-2.0 | |
| Canvas Awkward SyntaxX-isdoingreat/canvas-pilot | 125 | — | ~15k | Automated safety check: Notes | AGPL-3.0 | |
| Canvas GenericX-isdoingreat/canvas-pilot | 125 | — | ~7.5k | Automated safety check: Notes | AGPL-3.0 | |
| ArenaJakeschincariol/arena-skill | 312 | — | ~4.8k | Automated safety check: Pass | MIT |
vect-G/lecture-to-hw
Turns course slides, homework files, class code and earlier solutions into concise student-style Markdown answers, with optional subagents for solving and review.
woocommerce/woocommerce-ios
Evaluate WooAIAssistant against a structured scenario suite with hard invariants + LLM-as-judge rubric scoring.
X-isdoingreat/canvas-pilot
Direct-commit syntactically-marked rewrite humanizer. An agent skill from X-isdoingreat/canvas-pilot.
X-isdoingreat/canvas-pilot
Fallback runtime-designed handler for Canvas assignments that don't fit any of the 5 specific skills (canvas-ics33 / canvas-reading-annotation / canvas-essay / canvas-zybooks / canvas-inside).
Jakeschincariol/arena-skill
Make 100 versions of Claude fight to the death over one task.
2025Emma/vibe-coding-cn
A Chinese-language tutorial on advanced Claude Code use: its core tools, REPL, slash commands, workflows, permissions, memory, MCP, hooks and sub-agents.
XBuilderLAB/cheat-on-content
Proposes and applies upgrades to a content-scoring rubric: a full formula bump with blind re-scoring and a cross-model audit, or a lighter bucket-boundary recalibration.
XBuilderLAB/cheat-on-content
Onboards a new user to the cheat-on-content workflow with a short question flow, creating the project scaffolding and optionally importing past video history.
XBuilderLAB/cheat-on-content
Imports scripts and engagement numbers from an account you want to emulate, then extracts content patterns and starting scoring signals from them.
XBuilderLAB/cheat-on-content
Upgrades an older .cheat-state.json to the current schema version by applying migration files in order, with dry-run, backup and stop-on-failure behavior.
XBuilderLAB/cheat-on-content
Turns content creation into a calibrated loop of scoring, blind prediction, post-publish review and rubric evolution, with a built-in rubric for opinion videos.
XBuilderLAB/cheat-on-content
Builds or refreshes an account's audience profile from the comments in its post retrospectives and writes it to audience.md for later topic and script work.
Categories
Run `npx skills add XBuilderLAB/cheat-on-content --skill cheat-score-blind -a claude-code`. Or copy the skill folder (skills/cheat-score-blind in XBuilderLAB/cheat-on-content) into .claude/skills/cheat-score-blind in your project. Claude Code loads it when a task matches its description.
Run `npx skills add XBuilderLAB/cheat-on-content --skill cheat-score-blind -a codex`. Or copy the skill folder (skills/cheat-score-blind in XBuilderLAB/cheat-on-content) into .agents/skills/cheat-score-blind in your project. Codex loads it when a task matches its description.
Cursor, Gemini CLI, GitHub Copilot and OpenCode also load SKILL.md folders. With the skills CLI, run `npx skills add XBuilderLAB/cheat-on-content --skill cheat-score-blind -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/cheat-score-blind, .gemini/skills/cheat-score-blind, .github/skills/cheat-score-blind and .opencode/skills/cheat-score-blind in your project.
Going by SKILL.md and its folder, Blind Rubric Scorer Sub-Agent needs the command-line tools its instructions call (python3). Its frontmatter pre-approves these tools: Read, Glob, Grep.
SKILL.md contains no URLs. Any network use would come from the scripts or tools the agent runs. This is read from the text; nothing was executed.
Our automated static check of SKILL.md found no risky patterns, such as piping downloads into a shell, reading credential files or hidden Unicode. It is not a guarantee. Review the folder before installing.
Blind Rubric Scorer Sub-Agent is published under the MIT licence (the repository's licence). It allows redistribution, so the full SKILL.md is shown on this page.
About 2.1k tokens (SKILL.md is roughly 8.4k characters). Agents keep only the skill's name and description in context until a task matches; then they load SKILL.md in full.
Skills that share tags, products or a category with Blind Rubric Scorer Sub-Agent: Lecture to Homework (vect-G/lecture-to-hw, 127 stars), Woo AI Smoke (woocommerce/woocommerce-ios, 358 stars), Canvas Awkward Syntax (X-isdoingreat/canvas-pilot, 125 stars) and Canvas Generic (X-isdoingreat/canvas-pilot, 125 stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.
XBuilderLAB (a GitHub organization) maintains it in XBuilderLAB/cheat-on-content, which has 7,225 GitHub stars. The repository holds 16 skills in this directory. The repository was last updated on October 5, 2026.
Source: XBuilderLAB/cheat-on-content on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.