一键导入
check-rumination
Detect whether the user's current prompt is a semantic repeat of recent prompts within a rolling window. Returns an advisory signal; never blocks.
用 Codex 或 Claude 帮你安装 复制这段 Prompt,粘贴到 Codex、Claude 或其他助手里,让它检查 Skill 页面并帮你完成安装。
菜单
Detect whether the user's current prompt is a semantic repeat of recent prompts within a rolling window. Returns an advisory signal; never blocks.
用 Codex 或 Claude 帮你安装 复制这段 Prompt,粘贴到 Codex、Claude 或其他助手里,让它检查 Skill 页面并帮你完成安装。
基于 SOC 职业分类
Motor-aware pacing — decomposes a goal, shows each estimate padded by the profile buffer, names why.
Motor-aware pacing — decomposes a goal, shows each estimate padded by the profile buffer, names why.
Morning brief — what changed overnight, what matters today, one next-action per project.
Transcript → four-section brief (my asks, others' asks, decisions, ambiguous items with verbatim quotes). Records decisions into the cognitive graph.
/resume command — reconstruct yesterday's mental state from the cognitive graph, without inventing facts.
Reformats responses to Answer-First when sessions run long; surfaces the user's own prior intent if past their break threshold. Also activates on design-critique contexts (Figma reviews, comp reviews, prototype walk-throughs, spec reviews) so the verdict lands before the reasoning.
| name | check-rumination |
| description | Detect whether the user's current prompt is a semantic repeat of recent prompts within a rolling window. Returns an advisory signal; never blocks. |
Wrapper for check_rumination on the local NeuroDock guardrail server
(neurodock-guardrail). Compares the current prompt against a
caller-supplied history window and reports whether the count of similar
prompts has crossed the threshold.
Design rationale: ADR 0006 — guardrail tool design. The heuristic in v0.1.0 is word-overlap Jaccard, default threshold 0.55, default window 90 minutes, default count 3.
This tool never blocks the user's action. It returns an advisory signal the calling skill decides whether to surface, defer, or ignore.
Calls mcp__neurodock-guardrail__check_rumination. The server is
stateless — the caller supplies the history; the server stores
nothing. The server:
window_minutes of now.current_prompt and each
surviving history entry.similarity_threshold.detected: true if count ≥ threshold_count.Input shape:
{
"current_prompt": "should I send the email or not",
"history": [
{
"text": "should I send that email now",
"at": "2026-05-23T08:42:00+01:00"
},
{
"text": "is sending the email a bad idea",
"at": "2026-05-23T08:51:00+01:00"
},
{
"text": "the email - should I send it",
"at": "2026-05-23T09:05:00+01:00"
}
],
"window_minutes": 90,
"threshold_count": 3,
"similarity_threshold": 0.55
}
Field rules:
current_prompt (required): 1–8000 chars, verbatim.history (required): up to 500 entries, each {text, at}. The caller
filters and redacts before sending.window_minutes (optional, default 90): 1–1440. Source from
profile.guardrails.rumination_window_minutes when set.threshold_count (optional, default 3): 2–50. Floor of 2 because a
single repeat is normal human behaviour.similarity_threshold (optional, default 0.55): 0.0–1.0. Lower yields
more sensitivity and more false positives.{
"detected": true,
"count": 3,
"window_seconds": 5400,
"threshold": 3,
"confidence": 0.78,
"reason": "3 similar prompts within 90 minutes",
"heuristic": "jaccard_v0_1_0",
"override_options": [
"genuinely_new",
"i_know_im_ruminating_continue",
"remind_me_later"
],
"false_positive_feedback_path": "~/.neurodock/guardrail/false-positives.jsonl",
"similar_prompts": [
{
"text": "should I send that email now",
"at": "2026-05-23T08:42:00+01:00",
"similarity": 0.82
}
]
}
detected: false is a first-class return. The caller MUST respond
normally and SHOULD NOT surface any guardrail UI when detected is false.
The override_options array is the v0.1.0 controlled vocabulary the user
can invoke when they disagree with the detection:
genuinely_new — the user asserts the prompt is not a repeat. Lowers
similarity weighting for the matched cluster in future evaluations.i_know_im_ruminating_continue — the user is aware and chooses to
continue. The skill MUST proceed without further nudging in this turn.remind_me_later — defer the advisory; do not surface again until the
next session boundary.similarity_threshold field will remain to support deterministic
fallback.x-clinical-review-required annotation in the schema and the
project's ETHICS.md
commitments.When surfacing a detection, quote the prior similar prompt verbatim and state the count plainly ("4 times in the last 90 minutes — same shape"). Always offer the override options as the next interaction; the user has the final call. Do not pathologise — "ruminating" is the technical term in code, not in the user-facing message.