Cheat on Content is a workflow for content creators that records predictions and results for each post, reviews performance later, and updates the criteria used for future decisions. It is intended to make content planning and publishing an experiment that becomes more informed over time. The catalogue contains the skills that implement this workflow.
Getting it into your agent
One page per mod, every tool's command on it. A separate URL per tool would split the same page into five that compete with each other.
npx skills add XBuilderLAB/cheat-on-content --skill cheat-statusgit clone --depth 1 https://github.com/XBuilderLAB/cheat-on-contentWrote 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.
[](https://agentmods.dev/skills/xbuilderlab/cheat-on-content/cheat-status)<a href="https://agentmods.dev/skills/xbuilderlab/cheat-on-content/cheat-status"><img src="https://agentmods.dev/badge/skills/xbuilderlab/cheat-on-content/cheat-status/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.
<a href="https://agentmods.dev/skills/xbuilderlab/cheat-on-content/cheat-status"><img src="https://agentmods.dev/badge/skills/xbuilderlab/cheat-on-content/cheat-status.svg" alt="Reviewed on agentmods" width="80" height="20"></a>- NVIDIA SkillSpector pass
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.
| Model | Per session | Once invoked |
|---|---|---|
| Fable 5.1 | $0.00082 | $0.02804 |
| Opus 5.5 | $0.00033 | $0.01122 |
| Sonnet 5.5 | $0.00016 | $0.00561 |
| Haiku 4.5 | $0.00008 | $0.00280 |
Grade A, and why
cheat-status 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 1mo 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.
Copies of this mod
1 near-identical copy found in the catalogue:
- cheat-status — 97% identical, 2 lines differ
How it starts
The opening of the file, as written. The whole thing — 163 lines — stays where its author put it; the contents beside it link to each section on GitHub.
/cheat-status — 状态看板
读 state file + 扫描用户项目 → 汇总当前进度 → 输出"今天该做什么"清单。
Overview
[用户:状态]
↓
[Phase 1: 读 .cheat-state.json + 扫文件系统]
↓
[Phase 2: 计算派生指标]
↓
[Phase 3: 检测建议触发器(升级 / bump / 清算)]
↓
[Phase 4: 输出看板]
Constants
- SQLITE_UPGRADE_THRESHOLD = 30 — calibration_samples 达到 N 时建议升 SQLite
- CLEANUP_LINE_THRESHOLD = 600 — rubric_notes.md 行数超 N 时建议清算
- STALE_PREDICTION_DAYS = 30 — in_progress prediction 超 N 天未发布提示清理
Inputs
| 来源 | 用途 |
|---|---|
.cheat-state.json |
主要状态 |
predictions/*.md |
校准样本数 / pending retros |
candidates.md |
候选池规模 |
rubric_notes.md |
行数 / 当前版本 |
.cheat-cache/usage.jsonl(如有) |
meta-logging 数据,用于"距上次 bump 多少次预测" |
Workflow
Phase 1: 读状态
state = read_json('.cheat-state.json')
if not state:
return "你还没初始化。请先跑 /cheat-init。"
predictions = glob('predictions/*.md')
candidates_count = parse_candidates_md_entries()
rubric_lines = wc -l rubric_notes.md
Phase 2: 派生指标
| 指标 | 算法 |
|---|---|
| Buffer 数 | len(state.shoots) |
| Buffer 颜色 | 按 cadence-protocol.md 派生:buffer_days = buffer_count × target_publish_cadence_days,<1 红 / 1-2 橙 / 3-5 绿 / >5 蓝。如 target_publish_cadence_days=null → 颜色禁用 |
| Confidence 等级 | 按 state-management.md confidence 表 派生:从 calibration_samples 整数派生 emoji + 标签 |
| 最早一拍至今天数 | now - state.shoots[0].shot_at,用于警告"拍了 N 天没发" |
| 校准样本数 | predictions 中含完整复盘段(实绩数据非空)的文件数 |
| 待复盘 | state.pending_retros 中已过 RETRO_WINDOW_DAYS 的 |
| 池大小 | candidates.md 中 tier!=skip 的 entry 数 |
| 上次 bump 至今几次预测 | predictions 中 published_at > state.last_bump_at 的数量 |
| 同向偏差队列 | state.consecutive_directional_errors |
| in_progress 陈旧度 | now - state.in_progress_session.started_at(如有) |
Phase 3: 检测建议触发器
按优先级(高→低)逐项检查:
- Buffer 颜色 = 🔴 红 → 第一行高优先级警戒:"buffer 已 0/1 篇,下个发布日可能断更——今天必须拍 ≥1 条。说'推荐选题'我只推 top 1 稳分(不推实验性)"
- Buffer 颜色 = 🔵 蓝 → 高优先级提示:"buffer 已 N 篇积压。暂停拍摄,先发存货 + 复盘。说'已发布 ...'我帮你出队"
- state.shoots 中最早一项 shot_at > 14 天 → "你有视频拍了 N 天还没发——议题时效流失风险,建议尽快发或弃稿"
- in_progress 陈旧 (>= STALE_PREDICTION_DAYS) → 高优先级提示"清理或 publish"
- 待复盘 ≥ 1 → 高优先级"今天该复盘 X 篇"
pool_status=none+calibration_samples=0+ 距 init >24h → "🌱 你 init 完已经 N 天但还没拍——是因为没选题吗?跑 /cheat-seed 5 分钟拿 5 个候选 + 5 个 draft" 高优先级- Claude 判断系统性偏差信号(不是死磕 ≥3 同向) → 提示"建议跑 /cheat-bump"
- 默认参考:连续 ≥3 次同向偏差
- 但 Claude 可以更早:1 次极端偏差(≥10x)或 2 次同向 + 评论区强反向证据
- 也可以更晚:3 次同向但每次幅度都 <25%(可能只是噪声)
- 提示时显式标注:"本次是 [default-aligned] / [judgment-driven]"
- calibration_samples 跨入新 confidence 等级(0→1, 2→3, 5→6, 10→11, 20→21)→ 提示"🎉 confidence 升级:<旧等级> → <新等级>。bucket 中枢精度从 ±X% 提到 ±Y%"。仅作通知,无任何用户必须确认的操作——所有 skill 都已经按 calibration_samples 自动调整
- calibration_samples 跨过 5 → "你的 rubric 形态可以第一次正式 bump 了。回顾 rubric_notes.md 看观察记录段是否有 ≥3 样本支持的 pattern → 跑 /cheat-bump"
- calibration_samples 跨过 10 → "可以跑 /cheat-bump --bucket-only --scheme percentile 让 bucket 边界改用 percentile(永远自洽)"
- calibration_samples 跨过 SQLITE_UPGRADE_THRESHOLD 且 data_layer=markdown → "建议跑 tools/md-to-sqlite.py"(planned — batch 3, not yet available)
- rubric_notes.md 行数 > CLEANUP_LINE_THRESHOLD → "建议清算观察段(手动或下次 bump 触发)"
- calibration_samples ≥ 5 + pool_status=none → "可以开始建立选题池了"
- calibration_samples ≥ 15 + pool_status=none → "强烈建议建池:/cheat-trends 或手动建 candidates.md"
- state.hooks_installed=false → "你的 immutability 是君子协定,建议跑 /cheat-init 装 hook"
- state.last_bump_self_audited=true → "上次 bump 是自审。建议配置 mcp__llm-chat__chat 后下次 bump 走外部审"
- state.rubric_form_mismatch=true → "你的 content_form 不是 opinion-video,用了内置观点 rubric。前几篇预测会更不准,下次 bump 时建议自行调整权重适配你的形态"
- state.benchmark_status=pending → "🎯 你 init 时答应等下找对标账号但还没找。跑 /cheat-learn-from 导入 ≥3 条对标视频,工具就有 anchor 了"
- state.benchmark_status=imported + Claude 判断用户数据信号已超过 benchmark → "📊 你的真实数据已经成为主信号,benchmark 影响淡出"
- 默认参考:calibration_samples ≥ 10
- 但 Claude 可以更早:N=5 但用户的 (打分, 实绩) 配对里出现 ≥3 条与 benchmark pattern 不一致的——说明你的账号已经走出对标的路径
- 也可以更晚:N=15 但用户的样本都很相似,没足够多样性 → benchmark 仍有信号价值
- 提示是通知不是 gate——benchmark.md 永远保留作 sanity check,cheat-seed 仍可读
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.
- 1mo ago First seen · 163 lines · 82 tokens per session scan A b86f6ff45fe3
cheat-status is a skill published in the GitHub repository XBuilderLAB/cheat-on-content (7,309 stars, last pushed yesterday), licensed MIT. It adds 82 tokens to every session and 2,804 once invoked, about $0.0003 per session on Opus 5.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.
Other skills, from other repositories
story-readiness
Checks whether a story is ready to implement: clear acceptance criteria, no open questions, valid ADR and dependencies. Use when the user asks if a story, or the sprint's stories, are ready to start or build.
recipe-create-meet-space
Create a Google Meet meeting space and share the join link.
workthreads
SpecStory Workthreads - a weekly work-thread rollup across a team's repos from SpecStory coding histories (any agent - Claude Code, Codex, Cursor, Gemini, and more). It groups the window's sessions into threads of work per project and labels each new / open / recently closed, so a lead sees what shipped, what is still…
atmos-config
Atmos root configuration: atmos.yaml discovery, precedence, deep merging, basepath, imports, minimal bootstrap, and routing to narrower Atmos skills.
projects
List all managed projects with status, branch, open PRs, and open issue counts — portfolio-level view.
handle-linkedin-connection-request-signal
Use this skill when someone sends a team member an inbound LinkedIn connection request. An inbound request is a deliberate, ACTIVE first-party intent signal — meaningfully stronger than a passive profile view — and it deserves different scoring rules. The skill resolves and enriches the requester, gates them through…