cheat-status

Compare original and translation side by side

🇺🇸

Original

English
🇨🇳

Translation

Chinese

/cheat-status — 状态看板

/cheat-status — Status Dashboard

读 state file + 扫描用户项目 → 汇总当前进度 → 输出"今天该做什么"清单。
Read state file + scan user project → summarize current progress → output "Today's To-Do" list.

Overview

Overview

[用户:状态]
[Phase 1: 读 .cheat-state.json + 扫文件系统]
[Phase 2: 计算派生指标]
[Phase 3: 检测建议触发器(升级 / bump / 清算)]
[Phase 4: 输出看板]
[User: status]
[Phase 1: Read .cheat-state.json + scan file system]
[Phase 2: Calculate derived metrics]
[Phase 3: Detect suggestion triggers (upgrade / bump / cleanup)]
[Phase 4: Output dashboard]

Constants

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 天未发布提示清理
  • SQLITE_UPGRADE_THRESHOLD = 30 — Suggest SQLite upgrade when calibration_samples reaches N
  • CLEANUP_LINE_THRESHOLD = 600 — Suggest cleanup when rubric_notes.md exceeds N lines
  • STALE_PREDICTION_DAYS = 30 — Prompt cleanup for in_progress predictions not published for over N days

Inputs

Inputs

来源用途
.cheat-state.json
主要状态
predictions/*.md
校准样本数 / pending retros
candidates.md
候选池规模
rubric_notes.md
行数 / 当前版本
.cheat-cache/usage.jsonl
(如有)
meta-logging 数据,用于"距上次 bump 多少次预测"
SourcePurpose
.cheat-state.json
Core state data
predictions/*.md
Calibration sample count / pending retros
candidates.md
Candidate pool size
rubric_notes.md
Line count / current version
.cheat-cache/usage.jsonl
(if exists)
Meta-logging data for "number of predictions since last bump"

Workflow

Workflow

Phase 1: 读状态

Phase 1: Read State

python
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
python
state = read_json('.cheat-state.json')
if not state:
    return "You haven't initialized yet. Please run /cheat-init first."

predictions = glob('predictions/*.md')
candidates_count = parse_candidates_md_entries()
rubric_lines = wc -l rubric_notes.md

Phase 2: 派生指标

Phase 2: Derived Metrics

指标算法
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(如有)
MetricCalculation
Buffer Count
len(state.shoots)
Buffer ColorDerived per cadence-protocol.md:
buffer_days = buffer_count × target_publish_cadence_days
,
<1 Red / 1-2 Orange / 3-5 Green / >5 Blue
. Color disabled if
target_publish_cadence_days=null
Confidence LevelDerived per state-management.md confidence table: Derive emoji + label from
calibration_samples
integer
Days since earliest shoot
now - state.shoots[0].shot_at
, used to warn "Shot N days ago but not published"
Calibration sample countNumber of prediction files with complete retro sections (non-empty actual performance data)
Pending retrosEntries in state.pending_retros that have passed RETRO_WINDOW_DAYS
Pool sizeNumber of entries in candidates.md with tier!=skip
Predictions since last bumpNumber of predictions with published_at > state.last_bump_at
Consecutive directional error queuestate.consecutive_directional_errors
in_progress stalenessnow - state.in_progress_session.started_at (if exists)

Phase 3: 检测建议触发器

Phase 3: Detect Suggestion Triggers

按优先级(高→低)逐项检查:
  1. Buffer 颜色 = 🔴 红 → 第一行高优先级警戒:"buffer 已 0/1 篇,下个发布日可能断更——今天必须拍 ≥1 条。说'推荐选题'我只推 top 1 稳分(不推实验性)"
  2. Buffer 颜色 = 🔵 蓝 → 高优先级提示:"buffer 已 N 篇积压。暂停拍摄,先发存货 + 复盘。说'已发布 ...'我帮你出队"
  3. state.shoots 中最早一项 shot_at > 14 天 → "你有视频拍了 N 天还没发——议题时效流失风险,建议尽快发或弃稿"
  4. in_progress 陈旧 (>= STALE_PREDICTION_DAYS) → 高优先级提示"清理或 publish"
  5. 待复盘 ≥ 1 → 高优先级"今天该复盘 X 篇"
  6. pool_status=none
    +
    calibration_samples=0
    + 距 init >24h
    → "🌱 你 init 完已经 N 天但还没拍——是因为没选题吗?跑 /cheat-seed 5 分钟拿 5 个候选 + 5 个 draft" 高优先级
  7. Claude 判断系统性偏差信号不是死磕 ≥3 同向) → 提示"建议跑 /cheat-bump"
    • 默认参考:连续 ≥3 次同向偏差
    • 但 Claude 可以更早:1 次极端偏差(≥10x)或 2 次同向 + 评论区强反向证据
    • 也可以更晚:3 次同向但每次幅度都 <25%(可能只是噪声)
    • 提示时显式标注:"本次是 [default-aligned] / [judgment-driven]"
  8. calibration_samples 跨入新 confidence 等级(0→1, 2→3, 5→6, 10→11, 20→21)→ 提示"🎉 confidence 升级:<旧等级> → <新等级>。bucket 中枢精度从 ±X% 提到 ±Y%"。仅作通知,无任何用户必须确认的操作——所有 skill 都已经按 calibration_samples 自动调整
  9. calibration_samples 跨过 5 → "你的 rubric 形态可以第一次正式 bump 了。回顾 rubric_notes.md 看观察记录段是否有 ≥3 样本支持的 pattern → 跑 /cheat-bump"
  10. calibration_samples 跨过 10 → "可以跑 /cheat-bump --bucket-only --scheme percentile 让 bucket 边界改用 percentile(永远自洽)"
  11. calibration_samples 跨过 SQLITE_UPGRADE_THRESHOLD 且 data_layer=markdown → "建议跑 tools/md-to-sqlite.py"
  12. rubric_notes.md 行数 > CLEANUP_LINE_THRESHOLD → "建议清算观察段(手动或下次 bump 触发)"
  13. calibration_samples ≥ 5 + pool_status=none → "可以开始建立选题池了"
  14. calibration_samples ≥ 15 + pool_status=none → "强烈建议建池:/cheat-trends 或手动建 candidates.md"
  15. state.hooks_installed=false → "你的 immutability 是君子协定,建议跑 /cheat-init 装 hook"
  16. state.last_bump_self_audited=true → "上次 bump 是自审。建议配置 mcp__llm-chat__chat 后下次 bump 走外部审"
  17. state.rubric_form_mismatch=true → "你的 content_form 不是 opinion-video,用了内置观点 rubric。前几篇预测会更不准,下次 bump 时建议自行调整权重适配你的形态"
  18. state.benchmark_status=pending → "🎯 你 init 时答应等下找对标账号但还没找。跑 /cheat-learn-from 导入 ≥3 条对标视频,工具就有 anchor 了"
  19. 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 仍可读
Check items in priority order (high→low):
  1. Buffer Color = 🔴 Red → High-priority alert in first line: "Buffer has 0/1 piece(s), risk of breaking schedule on next publish date — you must shoot ≥1 piece today. Say 'recommend topics' and I'll only push top 1 safe-scoring (non-experimental) option"
  2. Buffer Color = 🔵 Blue → High-priority prompt: "Buffer has N backlogged pieces. Pause shooting, publish existing stock + do retros first. Say 'published ...' and I'll dequeue it for you"
  3. Earliest shot_at in state.shoots > 14 days → "You have a video shot N days ago but not published — risk of topic timeliness loss, recommend publishing or discarding as soon as possible"
  4. in_progress is stale (>= STALE_PREDICTION_DAYS) → High-priority prompt "Clean up or publish"
  5. Pending retros ≥ 1 → High-priority "You need to retro X pieces today"
  6. pool_status=none
    +
    calibration_samples=0
    + >24h since init
    → "🌱 It's been N days since you initialized but you haven't shot anything — is it because you have no topics? Run /cheat-seed to get 5 candidates + 5 drafts in 5 minutes" (high priority)
  7. Claude detects systematic bias signals (not strictly ≥3 consecutive same-direction) → Prompt "Recommend running /cheat-bump"
    • Default reference: ≥3 consecutive same-direction deviations
    • But Claude can trigger earlier: 1 extreme deviation (≥10x) or 2 same-direction + strong reverse evidence in comments
    • Or trigger later: 3 same-direction but each magnitude <25% (may just be noise)
    • Explicitly label when prompting: "This is [default-aligned] / [judgment-driven]"
  8. calibration_samples enters new confidence level (0→1, 2→3, 5→6, 10→11, 20→21) → Prompt "🎉 Confidence upgraded: <old level><new level>. Bucket center precision improved from ±X% to ±Y%". Notification only, no mandatory user action — all skills automatically adjust based on calibration_samples
  9. calibration_samples crosses 5 → "Your rubric is ready for its first official bump. Review rubric_notes.md to see if there are patterns supported by ≥3 samples → run /cheat-bump"
  10. calibration_samples crosses 10 → "You can run /cheat-bump --bucket-only --scheme percentile to switch bucket boundaries to percentile (always self-consistent)"
  11. calibration_samples crosses SQLITE_UPGRADE_THRESHOLD and data_layer=markdown → "Recommend running tools/md-to-sqlite.py"
  12. rubric_notes.md lines > CLEANUP_LINE_THRESHOLD → "Recommend cleaning up observation sections (manually or triggered on next bump)"
  13. calibration_samples ≥ 5 + pool_status=none → "You can start building a topic pool"
  14. calibration_samples ≥ 15 + pool_status=none → "Strongly recommend building a pool: run /cheat-trends or manually create candidates.md"
  15. state.hooks_installed=false → "Your immutability is based on gentleman's agreement, recommend running /cheat-init to install hooks"
  16. state.last_bump_self_audited=true → "Last bump was self-audited. Recommend configuring mcp__llm-chat__chat for external review on next bump"
  17. state.rubric_form_mismatch=true → "Your content_form is not opinion-video, but you're using the built-in opinion rubric. Early predictions will be less accurate, recommend adjusting weights to fit your format on next bump"
  18. state.benchmark_status=pending → "🎯 You promised to find benchmark accounts during init but haven't done so yet. Run /cheat-learn-from to import ≥3 benchmark videos, and the tool will have an anchor"
  19. state.benchmark_status=imported + Claude judges user data signals have exceeded benchmark → "📊 Your actual data has become the main signal, benchmark influence is fading"
  • Default reference: calibration_samples ≥ 10
  • But Claude can trigger earlier: N=5 but ≥3 pairs of (score, actual performance) in user samples are inconsistent with benchmark patterns — indicating your account has deviated from the benchmark path
  • Or trigger later: N=15 but user samples are very similar with insufficient diversity → benchmark still has signal value
  • Prompt is notification not gate — benchmark.md is always retained for sanity check, cheat-seed can still read it

Phase 4: 输出看板

Phase 4: Output Dashboard

🎛️ cheat-on-content 状态(更新于 2026-05-04 15:00)

内容形态:opinion-video / 时长 3-5min / cadence: 隔日更
当前 rubric:v2 (上次 bump: 2026-04-22)
校准样本:18 篇
Confidence: 🟢 较高 (中枢 ±15%,rubric 形态稳定)
Baseline: 4.2w 中位数

📦 Buffer:3 篇(🟢 绿色)
   按你的 cadence (隔日更)= 6 天 buffer,节奏稳定

📊 进度条
  [█████████████░░░░░] 18 / 30 → SQLite 升级建议门槛
  [██████████░░░░░░░░] 18 / 10 → percentile 桶可用(已超过门槛)

🎬 待办(按紧急度)
  🚨 复盘 1 篇(已过 T+3d)
     - predictions/2026-05-01_db063817_你已不在关系里.md(T+3d 到了)
  ⚠️  同向偏差 3 次(high, high, high)→ 建议 /cheat-bump
  💤 in-progress prediction 已陈旧 35 天
     - predictions/2026-04-01_xxx.md → 是已发了忘登记?还是弃稿?

🔥 候选池
  - candidates.md: 27 条(tier1: 12, tier2: 9, tier3: 6)
  - 距上次抓热点: 4 天 — 可以再跑 /cheat-trends

📈 健康度
  - rubric_notes.md: 412 行(健康,<600 警戒线)
  - hooks_installed: ✅
  - external audit configured: ❌ → 建议配 mcp__llm-chat__chat

下一步建议(按推荐优先级):
1. /cheat-retro predictions/2026-05-01_db063817_你已不在关系里.md  ← 最紧急
2. /cheat-bump  ← 同向偏差 3 次的处理
3. 处理陈旧 in-progress(手动或回 "清理 in-progress")

完整的命令清单见主 SKILL.md。
输出风格:直白、具体、可点击。每个建议附确切的命令——用户应能 copy-paste 直接执行。
🎛️ cheat-on-content Status (Updated on 2026-05-04 15:00)

Content Format: opinion-video / Duration 3-5min / Cadence: Every other day
Current rubric: v2 (Last bump: 2026-04-22)
Calibration Samples: 18 pieces
Confidence: 🟢 High (Center ±15%, rubric format stable)
Baseline: 42k median views

📦 Buffer: 3 pieces (🟢 Green)
   Based on your cadence (every other day) = 6-day buffer, rhythm is stable

📊 Progress Bars
  [█████████████░░░░░] 18 / 30 → SQLite upgrade recommendation threshold
  [██████████░░░░░░░░] 18 / 10 → Percentile buckets available (threshold exceeded)

🎬 To-Do (By Urgency)
  🚨 Retro 1 piece (Past T+3d)
     - predictions/2026-05-01_db063817_You're No Longer in the Relationship.md (T+3d reached)
  ⚠️  3 consecutive same-direction deviations (high, high, high) → Recommend /cheat-bump
  💤 in-progress prediction has been stale for 35 days
     - predictions/2026-04-01_xxx.md → Did you publish it and forget to record? Or discard it?

🔥 Candidate Pool
  - candidates.md: 27 entries (tier1: 12, tier2: 9, tier3: 6)
  - Days since last hot topic capture: 4 days — You can run /cheat-trends again

📈 Health Status
  - rubric_notes.md: 412 lines (Healthy, <600 warning line)
  - hooks_installed: ✅
  - external audit configured: ❌ → Recommend configuring mcp__llm-chat__chat

Next Steps (By Recommendation Priority):
1. /cheat-retro predictions/2026-05-01_db063817_You're No Longer in the Relationship.md  ← Most urgent
2. /cheat-bump  ← Handling 3 consecutive same-direction deviations
3. Process stale in-progress (manually or reply "clean up in-progress")

Complete command list can be found in the main SKILL.md.
Output Style: Straightforward, specific, clickable. Attach exact commands to each suggestion — users should be able to copy-paste and execute directly.

Key Rules

Key Rules

  1. 无副作用。读多写零。任何状态修改是其他 skill 的事
  2. 不假装数据可用。state file 字段缺失 → 显式标"未知",不猜
  3. 建议带优先级。10 个建议同时显示用户会麻木——按紧急度排
  4. 每个建议附命令。不能只说"该 bump 了"——要给
    /cheat-bump --propose "..."
    的精确入口
  1. No side effects. Read-only, no writes. Any state modification is handled by other skills
  2. Don't pretend data is available. If state file fields are missing → explicitly mark "Unknown", don't guess
  3. Suggestions with priority. Users will be overwhelmed if 10 suggestions are shown at once — sort by urgency
  4. Attach commands to each suggestion. Don't just say "Time to bump" — provide exact entry like
    /cheat-bump --propose "..."

Refusals

Refusals

  • 「顺便帮我自动跑一下 retro」 → 拒绝。status 是只读,retro 是另一个动作(避免一次操作做两件事)
  • 「我不想看 rubric_notes 行数,太琐碎」 → 输出仍包含但折叠到底部"健康度"区——状态信息的存在让用户在出问题前可见
  • "By the way, help me run retro automatically" → Refuse. Status is read-only, retro is a separate action (avoid doing two things in one operation)
  • "I don't want to see rubric_notes line count, it's too trivial" → Still include it but collapse to the bottom "Health Status" section — presence of status information lets users see issues before they occur

Integration

Integration

  • 上游:所有其他 skill 完成时更新 .cheat-state.json,status 是这些更新的可视化
  • 下游:每个建议都路由到具体子 skill
  • meta-logging hook(如启用) → 写 usage.jsonl,status 用它算"距上次 X 多少次"
  • Upstream: All other skills update .cheat-state.json upon completion, status is the visualization of these updates
  • Downstream: Each suggestion routes to a specific sub-skill
  • Meta-logging hook (if enabled) → Writes to usage.jsonl, status uses it to calculate "number of times since last X"