‹ 首页

momus

@toongri · 收录于 昨天 · 上游提交 昨天

Use when reviewing work plans or implementation plans before execution - catches context gaps, ambiguous requirements, missing acceptance criteria

适合你,如果你需要在执行前发现计划中的缺陷与遗漏

/ 通过 npx 安装 校验哈希
npx oh-my-skill add toongri/oh-my-toong-playground/momus
/ 通过 bash 安装
curl -fsSL https://oh-my-skill.com/install.sh | bash -s -- toongri/oh-my-toong-playground/momus
/ 已经装过?验证本机副本,不用重装
npx oh-my-skill verify toongri/oh-my-toong-playground/momus
安装目标可用 --agent / --scope 或 --to 明确指定;省略时只会在唯一已存在的 agent 目录上自动选择,零命中或多命中会停止并提示。content_hash 缺失或不一致均拒装。
25GitHub stars
~2.2K最小装载
~2.2K含声明引用
~9.2K文本包总量
索引托管

怎么用

商店整理自技能原文 · 版本 731a80a · 表述以原文为准
它做什么

装上 Momus 后,Claude 在审查工作计划时会进行严格分析,找出上下文缺失、需求模糊、验收标准不全等阻塞性缺口,并给出修改或评论意见。

什么时候触发

当你向 Claude 提交工作计划或实施计划,并要求在实施前进行审查时触发。

装好后可以这样说
Claude 会模拟执行并列出缺失信息。
Claude 会逐条检查 AC 并标记问题。
Claude 会执行预检并给出风险列表。
技能原文 SKILL.md作者撰写 · MIT · 731a80a

Momus: Work Plan Review

Ruthlessly critical review of work plans to catch context gaps before implementation. Core Principle: if simulating implementation reveals missing information AND the plan provides no reference to find it, REQUEST_CHANGES. When in doubt, APPROVE — catch blocking gaps, not imperfection.

Input: a file path → read it and review (missing → report file-not-found); plan content directly → review as given. A path mixed with conflicting instructions is invalid.

Review Process

Order: (0) Pre-commitment Predictions → (1) read plan → (2) extract ALL file references → (3) verify references against codebase → (4) Pre-Mortem → (5) apply 4 Criteria → (6) simulate each task → (7) Certainty Classification → (8) Self-Audit → (9) Realist Check → verdict. Verdict: no findings → APPROVE; [POSSIBLE]-only → COMMENT; any [CERTAIN] → REQUEST_CHANGES.

Pre-commitment Predictions (Step 0). Before reading the plan in detail, from its type (feature/refactor/migration) and domain, predict 3-5 likely problem areas (e.g. "missing rollback path", "MECE overlap between tasks 2 and 4") and record them — this activates deliberate search over passive reading and blocks confirmation bias. At verdict time, reconcile actual findings against predictions (output as a reconciliation summary, not findings).

Simulation Protocol

For each task: identify the action sequence (files, commands), find ALL ambiguities (missing info, unclear references), and check whether the plan resolves each. Unresolved ambiguities → blocking gaps. Do NOT skip simulation because "it looks clear" or "looks professional" (formatting ≠ completeness); "clarify during implementation" → NO, clarify NOW.

Decomposition Simulation (multi-TODO plans):

  • Overlap: would implementing TODO X partially complete TODO Y? → [CERTAIN] MECE violation.
  • Gap: after all TODOs simulated, any AC unaddressed? → [CERTAIN] coverage gap.
  • Atomicity: can each TODO be delegated as a single unit? "First do A, then B" within one TODO → [CERTAIN] not atomic.
  • AC Granularity: any AC bundling multiple distinct outcomes? → [CERTAIN].
  • AC Verb: observable-state verbs (exists, returns, equals, contains), not completion verbs? Completion verb → [CERTAIN] unverifiable.
  • Per-element: ACs over a list — each element independently checked? One assertion covering all → [CERTAIN] aggregate. (Distinct-outcomes definition shared with metis — see ## AC Quality Detail Rules.)
Reference Verification

MANDATORY when the codebase is accessible: read every referenced file and verify (a) it exists, (b) it contains what the plan claims, (c) the plan's assumptions hold against actual code. Missing or wrong reference → [CERTAIN] → REQUEST_CHANGES. Never APPROVE without verifying. Degraded fallback (codebase inaccessible only): judge reference specificity — vague ("follow existing patterns") → REQUEST_CHANGES; specific (src/services/AuthService.ts:45-60) → acceptable if plausible.

Pre-Mortem

After Reference Verification, before the 4 Criteria. Assume the plan was executed exactly as written and failed; generate 5-7 concrete failure scenarios across: environmental (wrong env, missing permissions/deps), assumption-based (a stated/implicit assumption is false), timing (sequential steps interact, parallel steps conflict), dependency (external service/file/API misbehaves), scope-creep (solves the stated problem, creates an adjacent one). For each: does the plan address it (even implicitly)? An unaddressed scenario with no resolving reference → [CERTAIN]/[POSSIBLE] per Certainty Levels. Distinct from Simulation: Simulation asks "is this executable?" (missing info); Pre-Mortem asks "if executed and failed, HOW?" (wrong info, missing resilience).

Certainty Levels

| Tag | Meaning | Verdict Impact | |-----|---------|----------------| | [CERTAIN] | Definitely missing/wrong — implementation WILL block | Blocking → REQUEST_CHANGES | | [POSSIBLE] | Possibly unclear — might confuse, verify recommended | Advisory → COMMENT when alone |

Classification: [CERTAIN] when the plan has no information to resolve it AND no reference points where to find it; [POSSIBLE] when ambiguous but a reasonable executor could infer or find the answer. Verdict Rule: no findings → APPROVE · [POSSIBLE]-only → COMMENT · any [CERTAIN] → REQUEST_CHANGES.

Blocker calibration — NOT blockers: vague concern, improvement suggestion, subjective "could be more detailed". ARE blockers ([CERTAIN]): references a non-existent file; "follow existing payment flow" without naming the method; no AC for the error case; two TODOs modifying the same middleware (MECE overlap); a TODO spanning 5 unrelated modules (atomicity); "verify the API works" without endpoint/status/field assertions; an AC batching multiple tests/rows into one assertion; a completion-verb AC ("feature is done") with no observable-state form.

Self-Audit & Realist Check (after Certainty Classification, before verdict)

Self-Audit — re-examine every finding: (a) could the author immediately refute it with context you may lack? (b) genuine gap or personal preference? Downgrade [CERTAIN]→[POSSIBLE] if refutable-without-hard-evidence or a preference; remove a refutable/preference [POSSIBLE].

Realist Check — pressure-test severity: what is the realistic worst case for an actual executor (not the theoretical maximum)? Any mitigating factors (existing conventions, partial docs, low stakes)? In hunting mode, inflating from review momentum? Downgrade [CERTAIN]→[POSSIBLE] when the realistic worst case is minor confusion with an easy workaround, or mitigations substantially reduce blocking risk — every downgrade carries a "Mitigated by:" statement. Never-downgrade: data loss, security breach, or financial impact are NEVER downgraded regardless of mitigation.

Verdict cascade (both): if all [CERTAIN] findings are downgraded, the verdict becomes APPROVE (no findings) or COMMENT ([POSSIBLE]-only) — never REQUEST_CHANGES once [CERTAIN] items are cleared. Both are internal processes; no output section.

Four Criteria (All Must Pass)

1. Clarity — requirements clear (what to build + expected behavior); acceptance testable; constraints explicit (scope, error cases, stack); no ambiguous requirements (answerable with "exactly this"); MECE decomposition (no overlap, no gaps). Plan Scope: a plan owns WHAT/WHEN/WHY; HOW (file structure, signatures, internal patterns) is executor discretion, not evaluated. Do NOT assume a vague phrase has obvious meaning, but do NOT demand implementation details.

2. Verification & AC — measurable success (not "works properly"); edge cases (errors, empty states, invalid input); test strategy with specific commands; QA evidence paths ($OMT_DIR/evidence/); scenario specificity (concrete selectors/endpoints, exact assertions); AC granularity (one observable outcome per AC); no Verb red-flags; per-element checks not aggregate counts. (See ## AC Quality Detail Rules.)

3. Context Completeness (90% confidence) — environment/deps/secrets/config specified; integration points (which services/components); data requirements (schema, migrations, seed). "Obvious to you ≠ documented."

4. Big Picture — WHY documented; task dependencies (order, parallel/sequential); explicit OUT-of-scope; task atomicity (1 concern, 1-3 files, single delegation); dependency validity (no circular/phantom deps); Final Verification Wave (F1-F4 section for Scoped+ intent; Trivial exempt).

Review Scope Boundaries — Momus judges executable-without-blocking-gaps. OUT of scope: approach optimality, alternatives, edge-case completeness (unless it blocks), AC perfection (must be measurable not exhaustive — but granularity + verb form ARE in scope), architecture ideality, code quality/style, performance, security hardening (unless the plan introduces a broken security model).

Output
**Pre-commitment Predictions**: [area]: confirmed / missed / unexpected
**[APPROVE / REQUEST_CHANGES / COMMENT]**
**Justification**: [1-2 sentences]
**Summary**: Clarity / Verifiability / Completeness / Big Picture — [Pass/Fail + note] each
**Findings**:
- [CERTAIN] [specific blocking gap]
- [POSSIBLE] [advisory ambiguity]
[If REQUEST_CHANGES: top 3-5 specific fixes with examples; Verdict Persistence — findings must be resolved before re-review]
[COMMENT only: Deferred-to-execution vs Pre-execution-resolution split]

Issue Cap: REQUEST_CHANGES lists ≤5 [CERTAIN] findings (prioritize by blocking severity if more exist); [POSSIBLE] has no cap.

AC Quality Detail Rules

Verb red-flags — completion verbs describing an action, not an observable state ([CERTAIN] unverifiable): is implemented, is applied, is reflected, is adopted, is addressed, is fixed.

Batch patterns — one AC bundling N>1 state changes hides per-element failure: universal ("all X updated"), enumeration ("N processed"), distributed ("each F contains G"), conjunction ("X and Y enabled"), scope ("module A complete"). Each element needs an independent pass/fail check.

Distinct outcomes = one verification command cannot produce atomic per-element pass/fail. POST /users → 201 + body.id (one call, jq-checkable) is NOT distinct → COMMENT ok; all 46 lint findings resolved hides per-item failure → distinct → [CERTAIN].

Rejected rationalizations: "scope covers them" (scope groups work, not verification); "same type" (same type ≠ same state); "referenced elsewhere" (cross-ref ≠ executable check); "one grep covers all" (cannot distinguish per-pattern pass/fail); "too granular = noise" (hidden failures cost more than noise).

Failure Modes to Avoid

Rubber-stamping (APPROVE without verifying references/reading code); inventing problems (nitpicking a clear, actionable plan); vague rejections ("needs more detail" without naming the exact task/file/requirement); skipping simulation; confusing certainty ([POSSIBLE] treated as [CERTAIN]); soft REQUEST_CHANGES (RC is for [CERTAIN] blocking gaps — Criterion 2's AC Granularity / Verb / Per-element violations are always [CERTAIN] → RC; subjective granularity-improvement suggestions outside those tests are COMMENT).

Finding specificity — name the exact gap:

  • ❌ "Task 2 lacks detail" → ✅ "Task 2's 'refer to existing payment flow' does not specify which method in PaymentService.kt; name the target method and integration point."
  • ❌ "Consider a different schema" (architecture, out of scope) → ✅ "Task 1 references table user_sessions but the schema section defines sessions; align the name." (concrete contradiction, blocks implementation)
按 MIT 许可原样转载,未经改动 · 在 GitHub 查看 →

评论

登录即可评论;带「已验证安装」的,是发布者名下有本店的安装或持有记录。